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

7 réponses

  1. Utilisateur anonyme
     
    Bonjour

    et un makseditbox ou maskedtextbox selon le vb que tu utilises (oui y'a pleins de vb différent)?
    1
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    1. Utilisateur anonyme
       
      Salut Pijaku.

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

    Merci de vos retours. Effectivement, je ne l'ai pas précisé. Je suis sur du VB excel.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  7. RaoulRuiz Messages postés 5 Statut Membre
     
    Merci encore de vos retour.s
    Pour information, j'ai utilisé le code de "pijaku"
    0
  8. Utilisateur anonyme
     
    Pense à marquer le sujet résolu
    0