Nombre de caracteres dans une textbox

Résolu
willy25 Messages postés 4 Statut Membre -  
willy25 Messages postés 4 Statut Membre -
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
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    1. willy25 Messages postés 4 Statut Membre
       
      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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    1. willy25 Messages postés 4 Statut Membre
       
      Merci je vais chercher de mon côté.
      0