Un certain nombre de touches sont disponibles en association avec Alt + touche pour être interceptées par Application.OnKeys "%<touche>", "<Fonction>".
Les autres sont des raccourcis Excel dont de nombreux affichent sur le ruban les lettres à suivre pour activer les fonctions du ruban correspondantes.
C'est quasi-jamais utilisé et je voudrais donc en récupérer certaines (ex Alt+v) pour mon propre usage.
Hélas je ne trouve pas de moyen de les désactiver car même en plaçant un Application.OnKeys "%v", "<Fonction>" le raccourci Excel prime.
Sub a()
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{%}v"
MsgBox "Définition de l'interception Alt+v"
End Sub
Merci pour ta proposition mais le problème ne porte pas sur le SendKeys mais sur l'interception de la combinaison des touches clavier Alt+v pour lancer une macro.
Alt+v est un raccourci Excel qui prime sur toute tentative d'interception par un Application.OnKeys "%v", "<Fonction>". Et je ne sais pas comment soit désactiver le raccourci Excel soit avoir la priorité d'interception.
d'après moi, pour lancer une macro, c'est seulement avec des raccourcis claviers du genre Ctrl e ; d'ailleurs, regarde cette image de boîte de dialogue :
pour la touche de raccourci, il y a « Ctrl+ » devant la case où on met la lettre ; y'a pas d'autre case avec devant « Alt+ » ; la touche Alt est réservée pour les combinaisons de touches du genre Alt F pour le menu Fichier, ou Alt L pour l'onglet Accueil.
Tu peux légitimement intercepter des touches (ou des combinaisons de touches) pour déclencher une macro.
Dans le fichier joint j'utilise une combinaison Alt + c qui n'est pas un raccourci Excel (voir liste en Post #1) et qui donc ne pose pas le problème que j'ai décrit dans le sujet.
la touche Alt est réservée pour les combinaisons de touches du genre Alt F pour le menu Fichier, ou Alt L pour l'onglet Accueil.
Toutes les combinaisons Alt + touches ne sont pas toutes des raccourcis Excel, il existe des combinaisons utilisables (voir liste en Post #1).
Mais ce que je voudrais faire c'est soit désactiver le raccourci Excel soit avoir la priorité d'interception sur le raccourci Excel pour des raccourcis Excel dont la touche m'intéresse, par exemple Alt + v.
@sylvanu,
Sur 2016 Alt+v amène toutes ces lettres qui permettent d'activer les fonctions du ruban sur lesquelles elles sont positionnées.
Perso je ne m'en sers jamais, mais pour des utilisateurs qui ont l'habitude et veulent aller vite ça peut être très utile en effet.
C'est ça que je voudrais inhiber pour 1 ou 2 raccourcis (Alt+v) mais je ne crois pas que ce soit possible simplement.
Sinon faut peut-être aller dans l'API bidouiller les évènements du clavier, mais je ne me sans pas d'y passer 3 jours.
j'avais oublié qu'on peut intercepter une touche avec Application.OnKey ; sur le fichier de sylvanu et le tien, ça marche impec : le Alt c ou le Alt v sont bien interceptés ; mais attention : pour le Alt c, ça ne marche plus si l'onglet Développeur est affiché dans le Ruban, car alors, Alt c n'est plus intercepté et sélectionne l'onglet Développeur. (ceci est sur ma version d'Excel 2007)
« ceci n'est pas un exercice » ; je répète : « ceci n'est pas un exercice » ; euh... je veux dire : « ceci n'est pas une blague, ceci n'est pas une blague... »
(tout proche, on entend les sirènes d'alarme de Pearl Harbor ! )
@soan,
Certes ça marche chez toi, mais tu es en quelle version d'Office ?
Chez moi, panneau Développeur affiché, Alt + c sélectionne les Compléments.
Mais bon, dans le contexte d'utilisation, le panneau Développeur reste au vestiaire.