Nombre de caracteres dans une textbox

Résolu/Fermé
willy25 Messages postés 4 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2008 - 12 mars 2008 à 14:40
willy25 Messages postés 4 Date d'inscription mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2008 - 12 mars 2008 à 15:29
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 mars 2008 à 14:48
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 mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2008
12 mars 2008 à 15:04
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
12 mars 2008 à 15:09
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 mardi 12 février 2008 Statut Membre Dernière intervention 12 mars 2008
12 mars 2008 à 15:29
Merci je vais chercher de mon côté.
0