Le sujet a peut-être été déjà posé. Mes recherches n'ont pas été fructueuses.
J'ai ajusté l'ordre de tabulation manuellement.
Userform1 ---> Frame1, Frame2, Frame3
Frame1 ---> TextBox1,TextBox2, Label1, Label2
Frame2 ---> TextBox3,TextBox4, TextBox5, Label3, Label4, Label5
Frame3 ---> TextBox6,TextBox7, TextBox8, , Label6, Label7, Label8
VB:
Option Explicit
Private Sub UserForm_Initialize()
TextBox1.SetFocus
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value <> "" Then TextBox2.SetFocus
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2.Value <> "" Then TextBox3.SetFocus ''plante sur Textbox3
End Sub
Je voudrais faire 2 choses:
1- utiliser la touche Tab ou Entrée pour passer à la textbox suivante;
2- le code plante lors du passage à une textbox se trouvant dans une frame différente (image ci-dessus).
Comment résoudre ce problème?
En vous remerciant par avance.
nb: lorsqu'on ouvre l'userform et qu'on utilise la touche tab ou entrée, on voit bien le curseur passé d'une textbox à l'autre.
Mais en affichant le VBE on trouve bien un message d'erreur. Comportement un peu bizarre!!!
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value <> "" Then TextBox2.SetFocus
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2.Value <> "" Then TextBox3.SetFocus ''plante sur Textbox3
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value <> "" Then TextBox2.SetFocus
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox2.Value <> "" Then TextBox3.SetFocus ''plante sur Textbox3
End Sub