Nombre decimal non pris en compte?
bonjour je dispose du code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| Function estChif(ByVal s As String) As Boolean
'Renvoie vrai si le caractère s est un chiffre.
estChif = Asc("0") <= Asc(s) And Asc(s) <= Asc("9")
End Function
Function extractionNb(ByVal s As String, ByVal d As Integer) As String
'Renvoie le premier nombre contenu dans la chaîne de caractères s,
'à partir de la position d ; renvoie -1 s'il n'y en a pas.
Dim n As Integer, i As Integer, p As String
n = Len(s): i = d
Do
If i > n Then
extractionNb = -1: Exit Function
ElseIf estChif(Mid(s, i, 1)) Then
Exit Do
Else
i = i + 1
End If
Loop
p = Mid(s, i, 1): i = i + 1
Do
If i > n Then
extractionNb = p: Exit Function
ElseIf estChif(Mid(s, i, 1)) Then
p = p & Mid(s, i, 1): i = i + 1
Else
extractionNb = p: Exit Function
End If
Loop
End Function |
Malheureusement lorsque j utilise une fonction test je remarque que mon code ne prend pas en compte les nombres decimaux
Code:
1 2 3 4 5
| Sub TestExtraction()
Dim code As String, d As Integer
code = "10y10y 200wc A300.12 vs 500"
MsgBox ("le nombre cherche vaut : " & extractionNb(code, 15) & Chr(10))
End Sub |
ce test par exemple ne me renvoie que la valeur 300
Comment faire pour tenir compte des nombres decimaux a , et a . ? merci de votre aide