bonjour je souhaite extraire les valeurs numériques dans une chaine de caractère
j’ai essayé ceci mais ça ne marche pas, sauf pour la première cellule qui marche
par exemple: 0205ngg62 je veux extraire: 020562
Sub numerique()
Dim x As String, i As Byte
Set Ws = Sheets(« Feuil1 »)
derligne = Ws.Range(« A » & Rows.Count).End(xlUp).Row
For j = 1 To derligne
For i = 1 To Len(Range(« A » & j).Value)
If IsNumeric(Mid(Range(« A » & j).Value, i, 1)) Then
x = x & Mid(Range(« A » & j).Value, i, 1)
End If
Next i
Range(« B » & j).Value = x
Next j
End Sub
Re,
Place cette fonction dans un module
et si ta valeur est en A1
dans B1 tu tapes =num(A1)
Function num(ch As String, Optional typeCar As Boolean = True) As String
Dim typ As Boolean, p As Long
For p = 1 To Len(ch)
typ = Mid(ch, p, 1) Like "#"
If typ = typeCar Then num = num & Mid(ch, p, 1)
Next p
End Function
Pour ta macro, tu as simplement omis de remettre la variable x=""
alors à la ligne suivante, il reprend les données de la ligne précédente et il ajoute ce qu'il trouve
Sub numerique()
Dim x As String, i As Byte
Set Ws = Sheets(« Feuil1 »)
derligne = Ws.Range(« A » & Rows.Count).End(xlUp).Row
For j = 1 To derligne
For i = 1 To Len(Range(« A » & j).Value)
If IsNumeric(Mid(Range(« A » & j).Value, i, 1)) Then
x = x & Mid(Range(« A » & j).Value, i, 1)
End If
Next i
Range(« B » & j).Value = x
x=""
Next j
End Sub
excellent, les deux codes marchent. merci beaucoup
cependant, j’ai essayé d’incrémenter les résultats de ta fonction(appeler la fonction dans une macro afin d’éviter d’écrire dans une cellule manuellement) , mais je n’y arrive pas.
Re,
Teste ceci
oss.xlsm (21,2 Ko)
Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.