Forcer format de saisie textbox

Résolu
RaoulRuiz -  
 Utilisateur anonyme -
Bonjour,

Je cherche à forcer le format de saisie d'une textbox sous la forme CC-LLL-CC ou CCC-LLL-CC (C=chiffre, L= Lettre).
Impossible de trouver ma réponse sur le net..

Merci de vos retours

Configuration: Windows / Chrome 81.0.4044.138
A voir également:

7 réponses

Utilisateur anonyme
 
Bonjour

et un makseditbox ou maskedtextbox selon le vb que tu utilises (oui y'a pleins de vb différent)?
1
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

pour format: CCC-LLL-CC à adapter pour d'autre format


Option Explicit
Private Sub TextBox1_Change()
On Error Resume Next
    Dim Valeur As Byte
    TextBox1.MaxLength = 8 'nb caractères maxi autorisé dans le textbox
    Valeur = Len(TextBox1)
    If Valeur < 3 Or Valeur > 6 Then
    If Not IsNumeric(Right(TextBox1, 1)) Then
        MsgBox "Le caractere saisi n'est pas valide" 'non numérique
        TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
    End If
    ElseIf IsNumeric(TextBox1.Value) Then
    MsgBox "Le caractere saisi n'est pas valide" 'numérique
    End If
End Sub


0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

En complément des réponses des collègues (que je salue au passage), voici une proposition :

Private Sub TextBox5_Change()
Dim Formatage As String, LenT As Integer
Const CH As String = "111-AAA-11"
Const COMP As String = "###[-][a-zA-Z][a-zA-Z][a-zA-Z][-]##"

    LenT = Len(TextBox5.Value)
    If LenT <= Len(CH) Then
        If LenT > 0 Then
            Formatage = TextBox5.Value & Right(CH, Len(CH) - LenT)
            If Not Formatage Like COMP Then TextBox5.Value = Left(TextBox5.Value, LenT - 1)
        End If
    Else
        TextBox5.Value = Left(TextBox5.Value, LenT - 1)
    End If
End Sub
0
Utilisateur anonyme
 
Salut Pijaku.

Si dans ça version de VB y'a un textbox maské ça reste plus simple ;)
0
RaoulRuiz
 
Bonjour,

Merci de vos retours. Effectivement, je ne l'ai pas précisé. Je suis sur du VB excel.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
Ha j'ai fait une recherche pour VBA (VB pour Application) et il semble qu'il n'y ait pas de masked textbox dans ce langage.

Donc, il faut te tourner vers les 2 autres solutions
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut Whis,

Non, en effet, cela n'existe pas.
Du coup, pour VBA Excel, ma solution fonctionne plutôt pas mal.
Il faut toutefois l'adapter pour les 2 cas : CC-LLL-CC ou CCC-LLL-CC.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention  
 
Bonjour à tous,

ucfoutu c'était essayé à cet excercice, il y a quelque temps

https://codes-sources.commentcamarche.net/source/53984-vba-uniquement-saisies-controlees-un-peu-comme-avec-maskededit

Cela nécessite des lignes de code!!!!!!!!!!!!!!!!

@+ Le Pivert
0
RaoulRuiz Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci encore de vos retour.s
Pour information, j'ai utilisé le code de "pijaku"
0
Utilisateur anonyme
 
Pense à marquer le sujet résolu
0