Extraire des nombres entourés de texte sous Excel

Publié le par Stéphane

Quelques fois vous pouvez obtenir données qui contiennent quelques nombres entourés de texte ou de caractères et texte avec ou sans espace entre le texte et les nombres..

La position des nombres dans le texte n'étant pas la même dans chaque ligne de données, vous vous retrouvez dans une situation ou il ne vous est pas possible de faire appel aux formules d'Excel pour extraire les nombres contenu dans le texte.

Aujourd'hui, je vais partager avec vous une fonction via une macro VBA qui va vous permettre d'extraire des nombres entourés de texte.

titre d'illustration le tableau suivant vous montre la capacité de cette Macro.


http://4.bp.blogspot.com/_SxJOHroo5C0/S2NWVa5qT6I/AAAAAAAAAHo/1bl8qd_Lhyg/s400/Nombres.png


Les valeurs numériques ont été extraites en utilisant la formule simple = Number (A3).

 Cette formule n'étant pas disponible en standard dans Excel, vous devez ajouter ce petit code VBA à votre classeur.


'****************************************************************
'* Extraire des nombres entourés de texte sous Excel *
'****************************************************************
Function Number(ByVal CurrString As String)
Dim temp As String

temp = Left(CurrString, 1)
Do While Not IsNumeric(temp)
If Len(CurrString) <= 1 Then
Exit Function
Else
CurrString = Mid(CurrString, 2)
temp = Left(CurrString, 1)
End If
Loop
Number = Val(CurrString)
End Function


Pour ce faire, dans votre classeur faites "Alt + F11", dans l'éditeur visual basic, allez sur "ThisWorkBook" puis clic droit "Insertion", "Module" et entrez le code ci-dessus.

Retournez sur votre classeur et vous pouvez utiliser cette nouvelle fonctionnalité.

 

Publié dans Macro & VBA

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
M
Bonjour,<br /> Super fonction et efficace<br /> Merci
Répondre
M
bonjour,<br /> comment faire pour que le code prenne en charge les décimal?
Répondre
L
Bonjour,<br /> <br /> J'ai repris le code tel qu'indiqué. Cependant je n'arrive pas à ecécuter la macro. Elle n'apparait pas dans les macros. Comment dois-je m'y prendre?
Répondre