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 :

Activer automatiquement une macro si une certaine touche est actionnée


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 26
    Points : 14
    Points
    14
    Par défaut Activer automatiquement une macro si une certaine touche est actionnée
    Bonjour,

    J'aimerais créer une macro qui s'active automatiquement si une certaine touche qu'on appellera E est activée. Je sais que ce que je propose est possible car il existe en effet des macros qui s'activent automatiquement.

    Cordialement.

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 240
    Points : 5 655
    Points
    5 655
    Par défaut
    Bonjour,

    Il faut utiliser l'activation des touches ("OnKey" en VBA, ligne suivante à mettre dans le module "ThisWorkBook", macro "Private Sub Workbook_Open()")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.OnKey "{E}", "mettez ici le nom de la macro à lancer"
    Quand on ferme le fichier, il faut penser à désactiver les touches (en VBA, ligne suivante à mettre dans le module "ThisWorkBook", macro Private "Sub Workbook_BeforeClose(Cancel As Boolean)"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.OnKey "{E}", ""
    Cdlt

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    donc si je comprends bien, le code ressemble à cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Workbook_Open()
    '
    '
     
    Application.OnKey "{E}", "macro1"
     
     
     
    End Sub
    la macro 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    '
        Selection.Range.InsertAutoText
    End Sub
    qui demande une insertion automatique.

    Il faudrait juste trouver comment faire pour que le macro private sub demande à la macro1 de faire une insertion automatique uniquement si le texte derrière est le nom d'une insertion automatique (sinon à chaque fois que j'utilise la touche E, s'il n'y a pas d'insertion automatique du nom du texte derrière, on affiche un message d'erreur en pop up très gênant). Il faudrait pour cela trouver où se trouve toutes les insertions automatiques et savoir demander à VBA Word de faire en sorte de rechercher s'il existe une insertion automatique avec ce nom.

    Pour ma part, toutes mes insertions automatiques se trouvent à l'emplacement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.Templates( _
            "C:\Users\Mon nom\AppData\Roaming\Microsoft\Templates\Normal.dotm"). _
            BuildingBlockEntries("$test").Insert Where:=Selection.Range, RichText:= _
    Dans le cas de l'insertion de l'insertion automatique $test.

    Cordialement.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Bonjour, désolé mais je parlais en langage VBA Word et non pas Excel. Desolé.

  5. #5
    Membre habitué
    Homme Profil pro
    Fortune teller
    Inscrit en
    Octobre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Fortune teller

    Informations forums :
    Inscription : Octobre 2007
    Messages : 110
    Points : 145
    Points
    145
    Par défaut Lettre
    Tu actives la macro non pas avec une lettre mais avec Ctrl + une lettre. Dans ton cas, c'est Ctrl e.
    Quand tu lances l'enregistreur de macros sur word, il te demande si tu veux l'affecter à un bouton ou à une lettre.
    Tu choisis la lettre que tu veux en appuyant sur la touche Ctrl.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2019
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Je marque cela sur dans mes macros mais cela ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    '
     
        Selection.TypeText Text:="rrrr"
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro2()
    '
    ' Macro2 Macro
    '
    '
     
    Application.OnKey "{^}+?", "Macro1"
     
    End Sub
    Le test veut que quand je fais Ctrl ?, le texte rrrrr apparaît mais rien ne se fait

Discussions similaires

  1. [Toutes versions] Activation automatique des macros complémentaires en VB.Net
    Par chebmo90 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/08/2009, 08h27
  2. Activation automatique des macros complémentaires
    Par chebmo90 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 12/08/2009, 08h54
  3. Activer automatiquement une référence si elle n'est pas activée?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/10/2007, 17h27
  4. Activation automatique des macros excels
    Par Rgent dans le forum Excel
    Réponses: 2
    Dernier message: 27/06/2007, 15h54
  5. Savoir si un objet d'une certaine classe est dans une liste
    Par Denti-fritz dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2007, 09h05

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