OVH Cloud OVH Cloud

Detecter appui echap

9 réponses
Avatar
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

9 réponses

Avatar
michdenis
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" a écrit dans le message de news:
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
Avatar
jps
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" a écrit dans le message de
news:
Je pense que ça ne doit pas etre tres compliqué...

Merci beaucoup




Avatar
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 !
Avatar
Michael
Probleme : pas de réaction...

Qu'entends-tu par fenetre en modal ?

Merci bien
Avatar
Michael
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
Avatar
michdenis
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" a écrit dans le message de news:
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 !
Avatar
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.
Avatar
michdenis
Je n'ai pas d'autres suggestions que celles déjà énoncées.


Salutations!


"Michael" a écrit dans le message de news:
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.
Avatar
jps
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" a écrit dans le message de
news:
jps aussi meme si un peu à coté de la plaque (mais bon, à qui la faute ?
moi

peut-etre...)

Bye