Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Fermer un USF au moyen du clavier

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

J'essaie tout simplement de trouver le moyen de fermer un USF en appuyant sur la touche "ESC" (en haut du clavier, tout à gauche).
J'ai bien tenté ce truc, trouvé quelque part :
VB:
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    If KeyCode = 27 Then Unload Me 'touche "ESC" --> l'USF est occulté

End Sub
sans succès...
Comment s'y prendre ?
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Magic_Doctor,

Peut-être avec SendKey() ? mais ça désactive le NumLock du pavé numérique ;
je sais qu'il existe une parade, mais je ne me rappelle plus laquelle.

En faisant une recherche sur le net, peut-être que tu trouveras cette parade ?

soan
 

soan

XLDnaute Barbatruc
Inactif
Bonjour mapomme,

un grand Bravo pour ton astuce !!!

mais j'comprends pas comment elle marche, lollllllllll !

j'ai bien vu le bouton en mode édition, après avoir élargi la fenêtre ;
mais la sub s'appelle CommandButton1_Click() ; donc en principe,
elle devrait se déclencher seulement si on clique sur le bouton ;
or c'est pas le cas quand on appuie sur la touche Echap !!!

même si moi pas comprendre, moi mettre à toi un très très gros Like,
car toi grand sorcier vaudou ! (et ton astuce marche très bien !)


soan
 

mapomme

XLDnaute Barbatruc
Supporter XLD
elle devrait se déclencher seulement si on clique sur le bouton ;
or c'est pas le cas quand on appuie sur la touche Echap !!!

Tu as négligé le point primordial : On met la propriété Cancel de ce bouton à True (Microsoft nous simplifie bien la vie sur ce coup )

Ci-dessous ce que dit l'aide de VBA au sujet de la propriété Cancel :
 

Pièces jointes

  • 1602439640021.png
    68 bytes · Affichages: 29
Dernière édition:

patricktoulon

XLDnaute Barbatruc
bonsoir a tous
a ben oui ça c'est une astuces sympa
pas mal l'accelerator sans accelerator
elle a sa place dans les astuces vba
bravo!! @mapomme

jusqu’à présent j'utilisais application.onkeys"ESC","procedure" dans le activate du userform
et dans le query close onkeys "esc" tout court , pour lâcher la gestion de touche
la procédure unload userform1 " bien sur
 

Dranreb

XLDnaute Barbatruc
Bonjour
L'UserFom2 ne me semble pas être bon par contre.
De toute évidence vous vous êtes trompé de bouton: vous avez mis à True la propriété Cancel du CommandButton1 ("OK"), qui mériterait, me semble-t-il, sa propriété Default à True pour qu'il réagisse plutôt à la touche Entrée, au lieu de la mettre ainsi au CommandButton2 ("OUT") qui ferme l'UserForm
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…