Utiliser "Onkey"
-
lundi 19 mars 2012 10:21
Bonjour
je ne parviens pas faire fonctionner "onkey"; j'ai mis ce qui suit dans un formulaire (initial) et il ne se passe rien lorsque j'appuie sur echap!?
Application.OnKey "{ESCAPE}", "sortie_Click"
Mon intention est de sortir du formulaire avec la touche echap.
Alain D
Toutes les réponses
-
lundi 19 mars 2012 12:23Le 19/03/2012 11:21, papyx a écrit :> Bonjour>> je ne parviens pas faire fonctionner "onkey"; j'ai mis ce qui suit dans> un formulaire (initial) et il ne se passe rien lorsque j'appuie sur echap!?>> Application.OnKey"{ESCAPE}","sortie_Click">>> Mon intention est de sortir du formulaire avec la touche echap.>Bonjour papyx,Application.OnKey est lié à VBA, pas à VB6.Comme tu poses la question dans le forum VB6, je répondrai en VB6,cette méthode fonctionnant aussi en VBA :Tu ajoutes sur ton formulaire un 'CommandButton' dont turenseignes les propriétés :- 'Caption' = "Annuler"- 'Cancel' = Trueet dans l' événement 'Click' de ce CommandButton tu mets:Private Sub CommandButton1_Click()Unload MeEnd SubNB : La propriété 'Cancel' à son pendant pour valider un formulaire:- 'Caption' = "OK"- 'Default' = True--Cordialement,Jacques.
Cordialement, Jacques -
lundi 19 mars 2012 12:47
salue Jacques
En réalité je suis en VBA sous Exel (2003).
Alain D
-
lundi 19 mars 2012 13:41Le 19/03/2012 13:47, papyx a écrit :> salue Jacques>> En réalité je suis en VBA sous Exel (2003).>Le forum approprié pour VBA est ici :Ceci dit, je pense que l'utilisation de OnKey n'est pas judicieusepour ce que tu veux faire. Comme l'indique la syntaxe :Application.Onkey ...La touche sera opérationnelle pour tout le classeur, que le formulairesoit actif ou pas. Autant utiliser ce est qui spécifique au formulaire ...
Cordialement, Jacques -
lundi 19 mars 2012 14:06
Je ne trouve pas la réponse sur le forum VBA.
J'ai essayé ce qui suit, mais c'est pareil : pas d'effet
Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
j'ai mis un point d'arrêt dans cette procédure. Mais je n'y vais jamais
Alain D
-
lundi 19 mars 2012 14:33
Le 19/03/2012 15:06, papyx a écrit :> Je ne trouve pas la réponse sur le forum VBA.>> J'ai essayé ce qui suit, mais c'est pareil : pas d'effet>> Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)>>> j'ai mis un point d'arrêt dans cette procédure. Mais je n'y vais jamais>Les formulaires sous VBA/Excel n'ayant pas de propriété 'KeyPreview',c'est le contrôle actif au moment de la frappe qui intercepte celle-ci,via KeyPress ou KeyDown. Essaie avec un formulaire vide, tu verras queça fonctionne. Ajoutes y un TextBox, un CommandButton, ou autres : ça nemarche plus, à moins de gérer les événements KeyPress de tous lesles contrôles de ton formulaire ...As tu essayé la solution proposée dans ma première réponse ?(Un CommandButton avec la propriété 'Cancel' = True)Et si tu n'as pas trouvé de réponse sur le forum VBA, tu peux tout demême y poser ta question.--Cordialement,Jacques.
Cordialement, Jacques- Marqué comme réponse papyx lundi 19 mars 2012 15:46
-
lundi 19 mars 2012 15:46
Merci Jacques
ca fonctionne comme je voulais avec 'Cancel=True'
Alain D

