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