Bonjour,
je souhaite extraire les valeurs numériques d'une chaine de caractère, et pour cela j'ai utilisé une routine que j'ai trouvé sur ce forum :
le problème que je rencontre c'est que les 2 premières expressions numériques sont bien rendues mais les suivantes sont séparées de leur puissance exemple :
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 Sub extraireValeursNumeriques_DansChaine() Dim i As Byte, Nb As Byte Dim Cible As String, Resultat As String Dim Nombre As Double Cible = "y = 2,851108E-09x3 - 1,671366E-06x2 + 1,023384E-03x + 2,591152E-02 R² = 9,999446E-01" 'Pour que fonction Val puisse reconnaitre les décimales: Remplacement des 'virgules par des points Cible = Replace(Cible, ",", ".") 'Pour gérer deux nombres qui se suivent: remplacement des espaces 'par un caractère Alpha Cible = Replace(Cible, " ", "x") For i = 1 To Len(Cible) If IsNumeric(Mid(Cible, i, 1)) Then Nombre = Val(Mid(Cible, i, Len(Cible) - i + 1)) Nb = Nb + 1 Resultat = Resultat & Nombre & vbLf i = i + Len(Str(Nombre)) - 1 End If Next MsgBox "Il y a " & Nb & " valeurs numériques dans la cellule " & vbLf & Resultat End Sub
1er expression = 2,85111E-09
2ème expression = 1,67137E-06
3ème expression = 0,001023384
4 ème expression = 3
5ème expression = 0,02591152
6ème expression = 2
7ème expression = 0,9999446
8ème expression = 1
auriez-vous une solution à me proposer?
Merci d'avance
Partager