bonjour je dispose du code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
ce test par exemple ne me renvoie que la valeur 300
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Comment faire pour tenir compte des nombres decimaux a , et a . ? merci de votre aide
Partager