Fonctions KeyPress ou KeyDown

Signaler
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
-
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
-
Bonjour,
En vb6, on pouvait récupérer les codes de touches pour les interpréter comme des boutons de commande. Ceci pour agir avec le clavier plutôt qu'avec la souris.
Quel moyen peut-on utiliser dans une macro pour Excel ?

Merci d'avance, Bab

5 réponses

Messages postés
29585
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 septembre 2020
337
Bonjour,

Il existe les mêmes commandes en VBA ... après... tout dépend ce que tu cherches à faire.
Messages postés
122
Date d'inscription
vendredi 29 août 2014
Statut
Membre
Dernière intervention
14 décembre 2016

Bonjour,
Comme dit Jordane45 tout dépend de ce que tu cherches à faire (et aussi ce que tu utilises).

Si tu te sers d'un UserForm, tu devrais mettre sa propriété 'KeyPreview' à true et en suite utiliser 'KeyUp' ou 'KeyDown' (par exemple)

A +
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015

Bonsoir,
J'avoue ignorer UserForm, son usage et son utilisation.

A ce jour, dans mon classeur, j'utilise des CommandButton donc les clics exécutent des macros distinctes. J'aimerais, substituer le rôle de la souris par une interprétation de certaines touches du clavier.

Mon souhait est selon la frappe de :
P+ , sélectionner le pb.suivant,
P- , sélectionner le pb.précédent,
P# , sélectionner le pb. N° nnn
P1 , voir 1 partie du Pb.
Pt , voir totalité du Pb.
Pa , ajouter un nouveau Pb.
Pe , effacer le Pb. en cours
ou un autre groupe d'actions telles :
B+ , Changer de Base
Ba , ajouter une nouvelle Base
Be , effacer une Base
Bs , saubvgarder toutes les Base,
etc...

A +
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015

Bonjour,
Je croyais avoir répondu, mais ai-je bien cliqué sur Envoi?

Je récidive donc, en avouant ignorer UserForm, son usage et son utilisation.

A ce jour, dans mon classeur, j'utilise des CommandButton donc les clics exécutent des macros distinctes. J'aimerais, substituer le rôle de la souris par une interprétation de certaines touches du clavier.

A +
Messages postés
29585
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 septembre 2020
337
Donc oui c'est possible.
par exemple:
http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_27118905.html

Il est aussi possible de faire quelque chose du genre :

=> Dans ThisWorbook :
Private Sub Workbook_Open()
    Application.OnKey "{ENTER}", "MyEnterEvent"
End Sub

Dans un Module :
Public Sub MyEnterEvent()
'Code lancé par la toucher ENTER (du clavier numérique)
    MsgBox "test"
End Sub


Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015

salut,
Le Pb. avec Onkey, c'est la saisie touche par touche est bien identifiée.
J'y viendrai peut-être...

Quant l'exemple d'Expert, je ne vois rien lié aux key's.

Mon souhait est selon la frappe de :
P+ , sélectionner le pb.suivant,
P- , sélectionner le pb.précédent,
P# , sélectionner le pb. N° nnn
P1 , voir 1 partie du Pb.
Pt , voir totalité du Pb.
Pa , ajouter un nouveau Pb.
Pe , effacer le Pb. en cours
ou un autre groupe d'actions telles :
B+ , Changer de Base
Ba , ajouter une nouvelle Base
Be , effacer une Base
Bs , saubvgarder toutes les Base,
etc...

A +
Messages postés
29585
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 septembre 2020
337
Visiblement ... ce n'est pas UNE touche que tu veux.. mais une COMBINAISON de touches...

Quant l'exemple d'Expert, je ne vois rien lié aux key's.

Tu as téléchargé le classeur qu'il met en PJ ??... il y a un exemple dedans !
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015

Avec VB6, keypreview=true , si la touche activée donnait "P" , je mémorisais et si l'appui suivant était "+", je lançais la macro voulue pour (P+). c'est ainsi que les suites de touches me dirigeaient.
Cela me semble difficile avec onkey, (pas de touches vbF2 non plus).

POUR EXPERT, l'anglais n'est pas mon fort et je ne vois pas de pièce jointe, hormis le texte avec les Declare ..., des functions et un sub test.
A +