Je voudrais retirer dans une chaîne de caractère le 0, je voudrais par exemple transformer dede010 ou dede 010
en 10.
J'ai donc écris une boucle qui fonctionne pour dede01 ou dede 01 mais qui me supprime le 0 si on a dede010 j'obtient 1 , je pert donc le 0 en fin de chaîne.
Voici mon code
Code:
Fnum2 = "dede10"
For i = 1 To Len(Fnum2)
x = Val(Mid(Fnum2, i, 1))
If x <> 0 Then
y = y & x
End If
Next
Sub T()
Dim Z$, P#, C As String * 1
Z = "dede 010"
For P = 1 To Len(Z)
C = Mid$(Z, P, 1): If C >= "0" And C <= "9" Then Exit For
Next P
Z = Trim$(Left$(Z, P - 1)) & Val(Mid$(Z, P))
MsgBox Z
End Sub
Mais qu'est-ce qu'il vous arrive les amis ? Cette fonction est vraiment évidente :
Code:
Function ExtraireNombre(t$)
Dim i%
For i = 1 To Len(t)
If IsNumeric(Mid(t, i, 1)) Then ExtraireNombre = Val(Mid(t, i)): Exit Function
Next
ExtraireNombre = ""
End Function
A utiliser dans une feuille de calcul ou dans une macro comme :
Code:
Sub Test()
MsgBox ExtraireNombre("dede010")
End Sub
Re
Salut Gerard
Je n'avais lu que le début de la phrase
Je voudrais retirer dans une chaîne de caractère le 0, je voudrais par exemple transformer dede010 ou dede 010
en 10.
Si le nombre à extraire peut être décimal utiliser :
Code:
Function ExtraireNombre(t$)
Dim i%
For i = 1 To Len(t)
If IsNumeric(Mid(t, i, 1)) Then ExtraireNombre = Val(Replace(Mid(t, i), ",", ".")): Exit Function
Next
ExtraireNombre = ""
End Function