IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Associer une macro à la touche clavier "Menu contextuel"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2019
    Messages : 11
    Par défaut Associer une macro à la touche clavier "Menu contextuel"
    ePour être clair, la touche "Menu contextuel" est située à droite de la barre d'espacement, à côté de la touche Control. Quand cette touche est enfoncée, Excel affiche par défaut le menu contextuel qui serait déroulé si le pointeur de la souris était déplacé à la position du curseur texte, le caret, et qu'un clic droit y était réalisé. Cette touche est essentielle à ceux qui travaillent exclusivement au clavier.

    En utilisant l'événement Worksheet_BeforeRightClick, il est possible de supplanter le menu contextuel d'Excel et de lui substituer un menu de remplacement, plus approprié à l'application que l'on développe. Lorsque l'on procède de la sorte, la cohérence voudrait que ce même menu de remplacement soit affiché lorsque la touche Menu est enfoncée. Ce n'est pourtant pas le cas, Excel continuant d'afficher ses propres menus.

    Je cherche donc un moyen d'associer à cette touche une macro qui afficherait le même menu que celui produit par le clic droit.

    La méthode Application.OnKey n'a pas prévu de constante pour signifier cette touche clavier. Et la tentative naïve suivante ne donne pas de résultat positif, même si l'instruction s'exécute normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.OnKey chr$(vbKeyMenu), "MaMacro"
    Quelqu'un aurait-il une idée sur la façon d'associer une macro à cette touche ?

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, j'utilise les OnKeys depuis très longtemps, mais étant sur Mac, nous n'avons pas les même touches . voici les codes pour la touche enter et Ctrl sur Mac, essayez donc d'adapter sur votre ordinateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Application.OnKey "{enter}", "EntréeSaisieAchats" 'changez bien évidemment le nom des Procédures 
    Application.OnKey "^{enter}", "ValidationSaisieAchats"
    Cordialement

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2019
    Messages : 11
    Par défaut
    Bonjour transitoire,

    Merci de t'intéresser à ce problème.

    La difficulté vient justement du fait que la méthode OnKey n'a pas prévu de constante string pour signifier cette touche du clavier. Je cherche don une manière de contourner cette limitation, ou une tout autre façon de procéder.

    Bon dimanche.

  4. #4
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, je pense que vous pouvez utiliser une double touche pour déclencher votre procédure
    Essayez le code ci-dessous. lancez la procédure testOn. a partir de la sur mon Mac, toutes les fois que je fait la double touche ctrl+enter, apparait un messagebox et cela tant que je n'ai pas passé la procédure testOff.
    Attention, il n'est pas sur que sur PC , ctrl corresponde a "^" il est possible que soit en soit une autre, a vous d'essayer les correspondances. mais vous pouvez utiliser un autre jeu de touche comme alt+enter ou tab+enter.
    vu les différences entre Mac et Pc, je ne peut pas vous renseigner plus que cela,désolé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub testOn()
    Application.OnKey "^{enter}", "Test2"
    End Sub
    Sub test2()
    MsgBox "ca marche!"
    End Sub
    Sub testOff()
    Application.OnKey "^{enter}"
    End Sub
    Cordialement

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2019
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2019
    Messages : 11
    Par défaut
    Bonjour Transitoire,

    Je n'ai aucune difficulté à faire exécuter ma macro par OnKey si j'utilise une autre touche que "Menu contextuel". D'ailleurs, en attendant de trouver une solution, j'utilise Alt + FlècheBas.

    Si je tiens à la touche Menu, c'est pour des raisons d'ergonomie. Pour les personnes travaillant exclusivement au clavier, les non-voyants notamment, cette touche est naturellement associé au clic droit de la souris, d'où mon entêtement à vouloir utiliser cette touche spécifique.

    Merci de ton intérêt.

  6. #6
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, OK bien compris. désolé de ne pouvoir vous aider plus que cela.
    Cordialement

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/11/2011, 22h33
  2. Réponses: 9
    Dernier message: 13/09/2007, 18h06
  3. touche clavier quote mysql
    Par chris81 dans le forum Administration
    Réponses: 4
    Dernier message: 19/03/2007, 14h08
  4. [VBA-E] Associer une macro à une cellule
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2006, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo