Deprecated: RegularLabs\Library\ArrayHelper::implode(): Implicitly marking parameter $last_glue as nullable is deprecated, the explicit nullable type must be used instead in /homepages/10/d550841420/htdocs/libraries/regularlabs/src/ArrayHelper.php on line 225
Comment passer automatiquement d'une textbox à une autre ?

Recherche

Tout d'abord, je précise que les solutions données ne sont valables que pour les contrôles ActiveX. Ce ne sera pas valable pour un champ de formulaire hérité qui ne peut déclencher une macro qu'à l'entrée ou à la sortie (il faut donc agir pour sortir), ni pour un contrôle de contenu.

Tout d'abord, il est impératif de donner au contrôle une longueur maximale, afin que Word sache quand passer au contrôle suivant. Cette longueur maximale s'ajoute dans les propriétés (MaxLength).

Si l'on parle d'un formulaire (Userform), c'est très simple : il suffit d'affecter au champ la propriété AutoTab, directement via la fenêtre Propriétés.

S'il s'agit de contrôles Textbox insérés directement dans le document, il faudra malheureusement une macro par textbox, du fait que la propriété AutoTab ne fonctionne pas dans ce contexte.

Voici la macro pour la TextBox1 afin de passer automatiquement dans la TextBox2 une fois la longueur maximale de texte saisi :

 

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'macro écrite par m@rina
If Len(TextBox1) = TextBox1.MaxLength - 1 Then
TextBox1 = TextBox1 + Chr(KeyAscii)
TextBox2.Activate
End If
End Sub

Cette macro va se déclencher lorsque la longueur maximale - 1 caractère sera atteinte. À ce moment-là le fait de presser le dernier caractère envoie directement dans la Textbox2.

Recommencer pour chaque TextBox en modifiant les noms des Textbox.

Statistiques

France 72,3% France
Canada 5,3% Canada
Chine 3,7% Chine

Total:

154

Pays
018457934
Aujourd'hui: 119
Hier: 236
Cette semaine: 119
Semaine dernière: 2.729
Ce mois: 5.862