XL 2016 vba textbox interdire la saisie des 0 en premier

Pexcel

XLDnaute Junior
Bonjour,
comment faire pour interdire la saisie des 0 devant sur une chaîne de chiffres et corriger la saisie dans la textbox? :
AFG0001236 interdit donne AFG1236
RTU1200036 OK
SCV01236 interdit donne SCV1236
0001996 interdit donne 1996
A000366 interdit donne A366
456000 OK

Merci.
 

youky(BJ)

XLDnaute Barbatruc
Bonjour Pexcel,
A tester ceci . . .ici sur Textbox1 à adapter
Bruno
VB:
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If Len(TextBox1) = 1 And KeyCode = 96 Then TextBox1 = "": Exit Sub
If Len(TextBox1) > 1 Then _
If Not IsNumeric(Mid(TextBox1, Len(TextBox1) - 1, 1)) And KeyCode = 96 Then TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Pexcel, Bruno,

Fonctionne même si l'on entre du texte par copier-coller dans TextBox1 :
Code:
Private Sub TextBox1_Change()
Dim t
t = " " & TextBox1
For i = 2 To Len(t)
    If Not IsNumeric(Mid(t, i - 1, 1)) And Mid(t, i, 1) = 0 Then
        t = Left(t, i - 1) & Mid(t, i + 1)
        i = i - 1
    End If
Next
TextBox1 = LTrim(t)
End Sub
A+
 

Pexcel

XLDnaute Junior
Bonjour Pexcel, Bruno,

Fonctionne même si l'on entre du texte par copier-coller dans TextBox1 :
Code:
Private Sub TextBox1_Change()
Dim t
t = " " & TextBox1
For i = 2 To Len(t)
    If Not IsNumeric(Mid(t, i - 1, 1)) And Mid(t, i, 1) = 0 Then
        t = Left(t, i - 1) & Mid(t, i + 1)
        i = i - 1
    End If
Next
TextBox1 = LTrim(t)
End Sub
A+


Salut, celle ci ne fonctionne pas ça me sélectionne le i de For i=2 et ça me signale variable non définie, erreur de compilation ?
Dommage car ça m'aurait plut le fait d éviter le copier coller !
A te lire @+
 

job75

XLDnaute Barbatruc
Bonsoir,

Oui j'ai oublié de déclarer la variable i, utiliser :
Code:
Private Sub TextBox1_Change()
Dim t, i
t = " " & TextBox1
For i = 2 To Len(t)
    If Not IsNumeric(Mid(t, i - 1, 1)) And Mid(t, i, 1) = 0 Then
        t = Left(t, i - 1) & Mid(t, i + 1)
        i = i - 1
    End If
Next
TextBox1 = LTrim(t)
End Sub
A+
 

Discussions similaires

Statistiques des forums

Discussions
315 106
Messages
2 116 271
Membres
112 706
dernier inscrit
Pierre_98