XL 2013 Userform ; Empêcher le curseur de revenir à la 1ère textbox lors d'un changement de frame ou de page

jptaz15

XLDnaute Nouveau
Bonjour,

J'ai un petite question pour vous. J'ai un userform avec 2 frames côte-à-côte. Chacune d'elle a une barre de défilement. Lorsque je change de frame. Le curseur revient automatiquement à la première textbox (en haut) selon le "tab index". Il faut donc toujours redescendre jusqu'à la textbox qui était utilisée avant le changement de frame, ce qui devient agaçant à la longue.

J'ai essayé d'utiliser ce code pour verrouiller la barre de défilement, mais évidemment je ne peux plus passer d'une textbox à l'autre avec la touche Tab.

Existe-t-il un moyen de verrouiller la position de la barre de défilement lorsque je change de frame, mais sans affecter les tabulations? Où bien verrouiller seulement lorsqu'on clique sur une autre frame ou page et déverrouiller lorsqu'on revient sur la frame, soit en cliquant dessus ou dans une textbox?

Merci pour votre aide

JP
 

Pièces jointes

  • userform - frame.xlsm
    19.6 KB · Affichages: 17

patricktoulon

XLDnaute Barbatruc
bonsoir
c'est déjà compliqué avec des textboxs mais dans des frames ça devient un bordel a maîtriser les events
cela dit ceci fonctionne
VB:
Dim fctrl1, Fctrl2
Private Sub Frame1_Enter()
    On Error Resume Next
    If Not fctrl1 Is Nothing Then fctrl1.SetFocus: SendKeys "{up}"
End Sub
Private Sub Frame1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Set fctrl1 = Frame1.ActiveControl
End Sub

Private Sub Frame2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    Set Fctrl2 = Frame2.ActiveControl
End Sub
Private Sub Frame2_Enter()
    On Error Resume Next
    If Not Fctrl2 Is Nothing Then Fctrl2.SetFocus: SendKeys "{up}"
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 942
Membres
101 849
dernier inscrit
florentMIG