Magic_Doctor
XLDnaute Barbatruc
VB:
Function NumDansChaine$(chaîne As String, Optional n As Byte = 1)
'**********************************************************************************
'Récupère un chiffre dans une chaîne de caractères qui peut en contenir plusieurs
'BOISGONTIER / david84 / mapomme / Rouge
'**********************************************************************************
'- chaîne : la chaîne de caractères qui peut comprendre 1, voire davantage de chiffres séparés par du texte
'- n : la position d'un chiffre dans la chaîne
'Exemples : NumDansCadena("Romina a 1 magnifique petit chat, 2 énormes chiens et 155,35 pesos dans son sac à main",1) --> 1
' NumDansCadena("Romina a 1 magnifique petit chat, 2 énormes chiens et 155,35 pesos dans son sac à main",2) --> 2
' NumDansCadena("Romina a 1 magnifique petit chat, 2 énormes chiens et 155,35 pesos dans son sac à main",3) --> 155,35
' NumDansCadena("Romina a 1 magnifique petit chat, 2 énormes chiens et 155,35 pesos dans son sac à main",n > 3) [il n'y a que 3 chiffres dans la chaîne] --> ""
Dim Obj As Object, a As Object
Set Obj = CreateObject("vbscript.regexp")
Obj.Global = True
Obj.Pattern = "\d+(" & Application.DecimalSeparator & "\d+)?"
Set a = Obj.Execute(chaîne)
On Error GoTo Resultat_Nul
NumDansChaine = a(n - 1)
Exit Function
Resultat_Nul:
NumDansChaine = ""
End Function