Bonjour,
Je me permets de vous écrire car j'ai besoin d'aide en VBA. Je suis débutant et j'essaie actuellement d'extraire les nombres d'une chaine et cela sur toute la feuilles Excel. (Cf attachment rectangles bleu)
Le problème est que dès la 2ième ligne jusqu'à la dernière le résultat récupère le résultat de la ligne précedente et cumule... (cf attachment les encadrés en rouges) (cf attachment nouveau résultat en rectangle vert)
Je n'arrive pas à trouver dans mon code (ci-dessous) où se trouve cet erreur de cumulation.
Pouvez-vous m'aiguiller vers la bonne solution svp?
En vous remerciant par avance
L.TVM
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
31
32
33 Sub extraireValeursNumeriques_DansChaine() Dim i As Integer, Nb As Integer Dim Cible As String, Resultat As String Dim Nombre As Double Const StartRow As Byte = 1 Dim LastRow As Long Dim r As Long 'For looping through rows LastRow = Range("B" & Rows.Count).End(xlUp).Row For r = StartRow To LastRow Cible = Range("B" & r).Value 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 i 'MsgBox "Il y a " & Nb & " valeurs numériques dans la cellule " & vbLf & Resultat Range("C" & r).Value = Resultat Next r End Sub
Partager