XL 2016 vba textbox interdire la saisie des 0 en premier

  • Initiateur de la discussion Initiateur de la discussion Pexcel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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.
 
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:
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+
 
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 @+
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
360
  • Question Question
Microsoft 365 N° de semaine
Réponses
4
Affichages
199
Réponses
11
Affichages
100
Retour