VBA : Obliger un chiffre à 3 caractères dans une textbox

[Résolu]
Signaler
Messages postés
2
Date d'inscription
jeudi 5 janvier 2012
Statut
Membre
Dernière intervention
5 janvier 2012
-
Messages postés
2
Date d'inscription
jeudi 5 janvier 2012
Statut
Membre
Dernière intervention
5 janvier 2012
-
Bonjour à tous,


J'ai une useform avec une textbox et j'aimerais obliger l'utilisateur à rentrer un chiffre à 3 caractères.

exemple :
Je ne veux pas que l'utilisateur puisse écrire 12, mais 012.

J'ai beaucoup cherché et n'ai pas trouvé solution à mon problème.

Pour l'instant, j'ai simplement limité la textbox aux valeurs numériques, à 3 caractères maxi.



Private Sub TextBox4_Change()

TextBox4.MaxLength = 3

On Error Resume Next

If Not IsNumeric(Right(TextBox4, 1)) Then
TextBox4.Text = Left(TextBox4, Len(TextBox4) - 1)
End If

End Sub


D'avance merci

2 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
n'a rien a faire dans le Change, sinon, pas saisie inconfortable voire impossible.

Déjà, mettre le MaxLength de ta box à 3, cela me semble une évidence.

faire par exemple :

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    '# Suppression des eventuels espaces
    TextBox1.Text = Trim$(TextBox1.Text)
    
    '# On autorise l'utilisateur à vider le Textbox
    If LenB(TextBox1.Text) = 0 Then Exit Sub
        
    '# L'utilisateur n'a pas respecté les règles du jeu...
    If Not IsNumeric(TextBox1.Text) Then
        '# On a la possibilité de mettre un MsgBox.
        Cancel = True
    Else
        '" Le format que l'on souhaite obtenir
        TextBox1.Text = Format$(TextBox1.Text, "000")
    End If
End Sub



Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
2
Date d'inscription
jeudi 5 janvier 2012
Statut
Membre
Dernière intervention
5 janvier 2012

C'est parfait, tout à fait ce que je recherchais !

Merci beaucoup