retirer en vba le 0 devant un nombre

zephir94

XLDnaute Impliqué
Bonjour à tous,

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

Merci par avance pour vos aides

Bien amicalement

zephir94
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Comme ça :
VB:
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
 

job75

XLDnaute Barbatruc
Bonjour zephir94, Bernard, Pierre,

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
A+
 

job75

XLDnaute Barbatruc
Re,

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
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 977
Membres
103 078
dernier inscrit
diomy