Il est possible de fermer le formulaire personnalisé en appuyant sur n’importe quelle touche comme <Echap>. Pour ce faire, il vous suffit d’écrire le code qui gère l’événement KeyDown et d’identifier explicitement la clé requise et de fermer le formulaire à l’aide de l’opérateur Unload ou End. L’évènement KeyDown a deux paramètres. Le premier renvoie le code de la touche enfoncée et le second identifie la touche de modification enfoncée. VBA a une constante spéciale vbKeyEscape pour le code de clé <Echap>. Le code suivant du module de formulaire personnalisé ferme la fenêtre lorsque la touche <Echap> est enfoncée.
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _ ByVal Shift As Integer) If KeyCode = vbKeyEscape Then Unload Me End If End Sub
Commentaires
■ Les évenements KeyDown et KeyUp se produisent successivement quand vous appuyez puis relâchez une touche. L’événement KeyDown se produit quand vous appuyez sur une touche. L’événement KeyUp se produit quand vous relâchez une touche. Les Syntaxes sont :
– Private Sub Object_KeyDown (ByVal keycode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
– Private Sub Object_KeyUp (ByVal keycode As MSForms.ReturnInteger, ByVal Shift As fmShiftState)
La syntaxe des événements KeyDown et KeyUp comprend les éléments suivants :
Élément | Description |
Object | Obligatoire. Nom d’un objet valide. |
KeyCode | Obligatoire. Entier représentant le code de la touche enfoncée ou relâchée. |
Shift | Obligatoire. État des touches Maj, Ctrl et Alt. |
Les paramètres de Shift sont représentés dans le tableau suivants :
Tableau: Les paramètres de Shift
Constante | Valeur | Description |
fmShiftMask | 1 | La touche Maj a été enfoncée. |
fmCtrlMask | 2 | La touche Ctrl a été enfoncée. |
fmAltMask | 4 | La touche Alt a été enfoncée. |
■ Vous pouvez utiliser les constantes Keycode suivantes n’importe où dans votre code à la place des valeurs réelles.
Constante | Valeur | Description |
VbKeyLButton | 0x1 | Bouton gauche de la souris |
VbKeyRButton | 0x2 | Bouton droit de la souris |
VbKeyCancel | 0x3 | Touche Annuler |
VbKeyMButton | 0x4 | Bouton central de la souris |
VbKeyBack | 0x8 | Touche Retour arrière |
VbKeyTab | 0x9 | Touche de tabulation |
VbKeyClear | 0Xc | Touche Effacer |
VbKeyReturn | 0Xd | Touche Entrée |
VbKeyShift | 0x10 | Touche Maj |
VbKeyControl | 0x11 | Touche Ctrl |
VbKeyMenu | 0x12 | Touche Menu |
VbKeyPause | 0x13 | Touche Pause |
VbKeyCapital | 0x14 | Touche Verr. Maj |
VbKeyEscape | 0x1B | Touche Échap |
VbKeySpace | 0x20 | Touche Espace |
VbKeyPageUp | 0x21 | Touche Pg. Préc |
vbKeyPageDown | 0x22 | Touche Pg. Suiv |
VbKeyEnd | 0x23 | Touche Fin |
VbKeyHome | 0x24 | Touche Début |
VbKeyLeft | 0x25 | Touche Gauche |
VbKeyUp | 0x26 | Touche Haut |
VbKeyRight | 0x27 | Touche Droite |
VbKeyDown | 0x28 | Touche Bas |
VbKeySelect | 0x29 | Touche de sélection |
VbKeyPrint | 0x2A | Touche Impr. Écran |
VbKeyExecute | 0x2B | Touche d’exécution |
VbKeySnapshot | 0x2C | Touche Instantané |
VbKeyInsert | 0x2D | Touche Inser |
VbKeyDelete | 0x2E | Touche Suppr |
VbKeyHelp | 0x2F | Touche Aide |
VbKeyNumlock | 0x90 | Touche Verr. Num |