Fonctions KeyPress ou KeyDown

Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
- - Dernière réponse : babu26
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
- 12 nov. 2014 à 20:00
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
Afficher la suite 

5 réponses

Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318
0
Merci
Bonjour,

Il existe les mêmes commandes en VBA ... après... tout dépend ce que tu cherches à faire.
Commenter la réponse de jordane45
Messages postés
122
Date d'inscription
vendredi 29 août 2014
Statut
Membre
Dernière intervention
14 décembre 2016
0
Merci
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 +
babu26
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 +
Commenter la réponse de acive
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
0
Merci
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 +
Commenter la réponse de babu26
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318
0
Merci
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


Commenter la réponse de jordane45
Messages postés
44
Date d'inscription
samedi 8 juin 2013
Statut
Membre
Dernière intervention
21 janvier 2015
0
Merci
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 +
jordane45
Messages postés
27049
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 décembre 2019
318 -
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 !
babu26
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 +
Commenter la réponse de babu26