XL 2010 Setfocus Textbox dans différentes Frames

  • Initiateur de la discussion Initiateur de la discussion cp4
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cp4

XLDnaute Barbatruc
Bonjour,

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
1614677053767.png

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!!!
 

Pièces jointes

Bonjour Cp4 et le forum,

VB:
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

en suppriment ces lignes cela fonctionne,

bonne continuation jcf
 
Bonjour Cp4 et le forum,

VB:
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

en suppriment ces lignes cela fonctionne,

bonne continuation jcf
Bonjour JFC,

Merci. Ton approche est radicale, sans aucun code et la magie opère (ça fonctionne).

Encore merci.

Bonne journée.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
955
Retour