Extraction de valeur numérique

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.