Nombre de caracteres dans une textbox

Résolu
willy25 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
willy25 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis assez peu familier avec VBA. dans mon application, j'ai des textbox.Je voudrais que pour chaques textbox ( aux quelles j'ai attribué un format), on tape le texte puis on compte le nombre de caracteres et on compare avec le format donné et faire apparaître une boîte à message. Pour la boîte, il n'y a pas de problémes mais elle apparaît a chaque fois que je tape un caractere dans la textbox. Il doit me manquer quelque chose mais je ne vois pas quoi:
Voici le code:

Private Sub TextBox3_Change()
Dim msg, style, text
msg = "Le format est de type jj-mm-aa"
style = vbOK
text = "Erreur"
'laisser taper 8 caracteres et limiter le nombre de caracteres
If Len(TextBox1.text) <> 8 Then
TextBox1.text = ""
MsgBox "8 caractères obligatoires"

textformat = "dd-mm-yy"

If TextBox1.text <> textformat Then
reponse = MsgBox(msg, style, text)
End If
End If

End Sub
Si quelqu'un peut m'aider.
Merci
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
La fonction change est appelée à chaque fois que tu introduis ou supprimes un caractère dans la textbox, d'où ton erreur. Si tu veux faire ceci, tu peux créer un bouton OK, et lorsque tu cliqueras dessus, ça exécutera ton code.

Cdt
5
willy25 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse.

entre temps, j'ai modifié mon code et le nombre de caractéres max dans la textbox (maxlength=0).Ca marche comme je le souhaiterais sauf que j'aimerais que mon curseur aille à la prochaine textbox. Comment faire?
J'ai un bouton Ok qui servira une fois que toutes les textbox seront rempli à copier les informations dans un fichier excel.

Private Sub TextBox3_Change()
Dim msg, style, text
msg = "Le format est de type jj-mm-aa"
style = vbOK
text = "Erreur"
'laisser taper 8 caracteres et limiter le nombre de caracteres



If Len(TextBox3.Value) > 8 Then
TextBox1.text = ""
MsgBox "8 caractères obligatoires"

textformat = "dd-mm-yy"

If TextBox3.text <> textformat Then
reponse = MsgBox(msg, style, text)
End If
End If

End Sub
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
De mémoire, il y a une fonction focus() qui te servira. Par exemple text4.focus().
Mais, je te promets rien sur la syntaxe, je ne m'en souviens plus très bien.
0
willy25 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Merci je vais chercher de mon côté.
0