OVH Cloud OVH Cloud

Séquence de touche pour sortir

1 réponse
Avatar
Jacques
Bonjour,

J'ai interdis l'utilisation de la croix du UserForm pour sortir avec le code
suivant :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

ça marche bien et j 'ai un bouton "Quitter" pour les utilissateur, mais je
voudrais pouvoir arreter le script pour moi avec une séquence de touche
(CTRL + F) par exemple.
Dans mmon userform j'ai des zonnes de sasie et des listes.

Comment puis-je faire ?

Jacques

1 réponse

Avatar
jean-marc
"Jacques" wrote in message
news:4338dc93$0$5377$
Bonjour,

J'ai interdis l'utilisation de la croix du UserForm pour sortir avec le


code
suivant :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then Cancel = True
End Sub

ça marche bien et j 'ai un bouton "Quitter" pour les utilissateur, mais je
voudrais pouvoir arreter le script pour moi avec une séquence de touche
(CTRL + F) par exemple.
Dans mmon userform j'ai des zonnes de sasie et des listes.



Hello,

le principe: une variable publique sur le USer_form.
Tu détectes la combinaison de touche dans l'évènement
KeyDown (il faut KeyPreview = True pour la forme) et
tu mets cette variable à TRUE. Dans le Query_onlaod,
il suffit de tester en plus la valeur de cette variable.
SI elle est à TRUE, tu quittes tout de même:

' 8<---------------------

Private G_ALLOW_QUIT_ONLY_FOR_ME As Boolean

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

' CONTROL - F
If KeyCode = 70 And Shift = 2 Then
G_ALLOW_QUIT_ONLY_FOR_ME = True
End If
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

If UnloadMode = vbFormControlMenu Then
If Not G_ALLOW_QUIT_ONLY_FOR_ME Then
Cancel = True
End If
End If
End Sub

' 8<---------------------

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;