Detecter appui echap

Le
Michael BAS
Bonjour à tous !

Je cherche le moyen de detecter en VBA l'appui sur la touche Echap (pour
pouvoir fermer un userform).

Je pense que ça ne doit pas etre tres compliqué

Merci beaucoup
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
michdenis
Le #3138411
Bonjour Michael,

Pour faire ce que tu demandes, il faudrait selon moi, un procédure ressemblant à ceci pour tous les contrôles de ton formulaire
....encore faut-il que la fenêtre du formulaire soit ouvert dans une fenêtre modale !

'---------------------------
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 27 Then
Unload Me
End If

End Sub
'---------------------------

Si tu expliquais le pourquoi de cette façon singulière de fermer un formulaire... tu aurais peut être des suggestions mieux adaptées
d'arriver à tes fins.


Salutations!




"Michael BAS" Bonjour à tous !

Je cherche le moyen de detecter en VBA l'appui sur la touche Echap (pour
pouvoir fermer un userform).

Je pense que ça ne doit pas etre tres compliqué...

Merci beaucoup
jps
Le #2957491
bonjour michael
formule plus que maladroite car si je l'introspecte, lorsque ce n'est pas
très compliqué, j'arrive à trouver..
regarde du côté de Sendkeys
jps

"Michael BAS" news:
Je pense que ça ne doit pas etre tres compliqué...

Merci beaucoup




Michael
Le #2957481
Merci

Cela me permettrait en fait de fermer rapidement un formulaire qui

contient toutes sortes de données. Celui-ci me sert à selectionner

une donnée pour la copier dans une cellule au lien de la taper...

Voilà, je teste et je vous tiens au courant

Merci beaucoup !
Michael
Le #2957471
Probleme : pas de réaction...

Qu'entends-tu par fenetre en modal ?

Merci bien
Michael
Le #2957451
Merci c'est tout bon
ça marche

Mais je ne comprend pas pourquoi il faut utiliser un commandbutton1_Keydown
et pas un userform_Keydown ...

Et de meme pourquoi un Keydown et pas un Keypress ...

Merci encore michDenis
jps aussi meme si un peu à coté de la plaque (mais bon, à qui la faute ? moi
peut-etre...)

Bye
michdenis
Le #2957431
Bonjour Michael,

Ce n'est pas en cliquant sur le bouton de commande que tu vas avoir une réaction dans cette procédure:

'---------------------------
Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

If KeyCode = 27 Then
Unload Me
End If

End Sub
'---------------------------

Si le bouton de commande a le "focus" et que tu appuies sur la touche esc, le formulaire se déchargera. Voilà pourquoi chaque
contrôle doit avoir cet événement de défini.

La fenêtre modale t'assure qu'au moins un des contrôles à le focus ou c'est le formulaire lui-même ... en conséquence, l'appui de la
touche Esc va être détecté peu importe sur quel contrôle se trouve le focus.

Ce que je n'arrive pas à comprendre, pourquoi l'usager ne pourrait pas utiliser seulement un bouton de fermeture, Où est l'urgence
de fermer en catastrophe ?


Salutations!



"Michael" Merci

Cela me permettrait en fait de fermer rapidement un formulaire qui

contient toutes sortes de données. Celui-ci me sert à selectionner

une donnée pour la copier dans une cellule au lien de la taper...

Voilà, je teste et je vous tiens au courant

Merci beaucoup !
Michael
Le #2957421
L'usager a en fait un tableau d'environ deux cent lignes a remplir

Un clic droit sur une cellule lui permet d'avoir un menu contextuel avec
plusieurs
groupes (classés par types) de matériel.
Puis differents materiels dans chaque groupe ; un click sur celui-ci
l'inscrit comme
valeur de la cellule.
Là mon userform s'ouvre pour définir l'emplacement de ce matériel.
(dbl-clic sur l'emplacement l'ajoute à la valeur de la cellule)
Exemple : "Bouton poussoir - Bureau du directeur"

Du fait qu'il n'y ait pas toujours d'emplacement et vu la répetitivité de la
chose
un échap me parait beaucoup plus rapide que d'aller chercher un
commandbutton
en bas de ma liste.

Voila pour la petite histoire merci encore !
Si il y a d'autres questions, pas de problemes pour que j'y réponde.
michdenis
Le #2957401
Je n'ai pas d'autres suggestions que celles déjà énoncées.


Salutations!


"Michael" L'usager a en fait un tableau d'environ deux cent lignes a remplir

Un clic droit sur une cellule lui permet d'avoir un menu contextuel avec
plusieurs
groupes (classés par types) de matériel.
Puis differents materiels dans chaque groupe ; un click sur celui-ci
l'inscrit comme
valeur de la cellule.
Là mon userform s'ouvre pour définir l'emplacement de ce matériel.
(dbl-clic sur l'emplacement l'ajoute à la valeur de la cellule)
Exemple : "Bouton poussoir - Bureau du directeur"

Du fait qu'il n'y ait pas toujours d'emplacement et vu la répetitivité de la
chose
un échap me parait beaucoup plus rapide que d'aller chercher un
commandbutton
en bas de ma liste.

Voila pour la petite histoire merci encore !
Si il y a d'autres questions, pas de problemes pour que j'y réponde.
jps
Le #2957361
non, non, michael, mea culpa, mea maxima culpa car moi, je trouvais ça très
compliqué et c'est pout cela que je m'a gouré...
jps

"Michael" news:
jps aussi meme si un peu à coté de la plaque (mais bon, à qui la faute ?
moi

peut-etre...)

Bye




Poster une réponse
Anonyme