Test MaxLength d'une textbox..

  • Initiateur de la discussion Initiateur de la discussion babap1
  • 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 !

babap1

XLDnaute Occasionnel
Bonjour le forum,

j'aimerai faire un test sur ma textbox pour en définir la taille maximale :
Ma textbox ne peut contenir que des chiffres [0123456789] ou un tiret [-] et en fonction de ce que tappe l'utilisateur, il faut qu'il puisse entrer plus ou moins de données :

Code:
Private Sub textbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     If InStr("[0123456789][-]", Chr(KeyAscii)) = 0 Then
        KeyAscii = 0
        Beep
     End If
    
    ' Si l'utilisateur écrit un tiret alors la taille maximale est 7 sinon elle est de 12
    If InStr("[-]", Chr(KeyAscii)) = "-" Then
        Me.txt_SRnumber.MaxLength = 7
    Else
        Me.txt_SRnumber.MaxLength = 12
    End If
End Sub

Ca ne fonctionne pas très bien puisque s'il détecte un tiret maxLength =7 et si ensuite l'utilisateur entre un chiffre, la taille repasse à 12 au lieu de 7 puisqu'il y a un tiret dans ce qu'il y a d'écrit..

Merci du coup de main.
Baptiste
 
Re : Test MaxLength d'une textbox..

Bonjour babap1,

InStr renvoie la position d'un caractère dans une chaîne, et il ne comprend pas les crochets, je crois (contrairement à Like)

Moi je ferais un truc du type :

Code:
Private Sub Txt_SRnumber_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
     If InStr("0123456789-", Chr(KeyAscii)) = 0 Then
        KeyAscii = 0
        Beep
     End If
    
    ' Si l'utilisateur écrit un tiret alors la taille maximale est 7 sinon elle est de 12
    If InStr(Txt_SRnumber.Text, "-") > 0 Then
        Me.Txt_SRnumber.MaxLength = 7
    Else
        Me.Txt_SRnumber.MaxLength = 12
    End If
End Sub
 
Re : Test MaxLength d'une textbox..

Bonjour babap,

Si j'ai compris ce que tu veux faire, essaie plutôt quelque chose comme ceci:
A l'entrée de txt_SRnumber, contrôle de la présence du "-" dans textbox et si oui longueur 7 sinon longueur 12,

Code:
Private Sub TextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If InStr("[0123456789][-]", Chr(KeyAscii)) = 0 Then
        KeyAscii = 0
        Beep
    End If
End Sub
Private Sub txt_SRnumber_Enter()
    If InStr(1, TextBox1, "-") > 0 Then
        Me.txt_SRnumber.MaxLength = 7
    Else
        Me.txt_SRnumber.MaxLength = 12
    End If
End Sub

[Edition] Hello Tototiti
A+
 
Dernière modification par un modérateur:
- 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
20
Affichages
2 K
Réponses
3
Affichages
951
Retour