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 :

[VBA E] lancer macro click droit


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut [VBA E] lancer macro click droit
    bonsoir à tous

    Comment peut on executer apres selection de cellules une macro avec un click droit soit directement soit avec l'apparition d'une commande dans le menu contextuel .

    Merci d'avance

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tiens voila un peu de code ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    '
    ' Rajout d'une entrée dans menu contextuel
    '
    '
     Function MenuCell(stCde As String, stMess As String)
        Dim mc As CommandBarControls
        Dim bo As CommandBarButton
        Set mc = CommandBars("Cell").Controls
        Set bo = mc.Add(msoControlButton, Temporary:=True)
        bo.Caption = stMess
        bo.OnAction = stCde
    End Function
    un exemple d'utilisation, l'initialisation dans Workbook_open
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
     MenuCell "RajoutePrefixe", "RajoutePrefixe"
    End Sub
    La fonction RajoutePrefixe...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    '
    ' fonction exemple..
    '
    Sub RajoutePrefixe()
    Dim Pre As String
    Dim s as range, c As Object
       Pre = InputBox("prefixe")
           Set s = Selection
           For Each c In s
              c.Value = Pre & c.Value
           Next
     
    End Sub

  3. #3
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    merci bbil pour ton code

    Je l'ai placé dans this workbook.

    Mais j'ai une erreur lorsque je demarre le classeur "variable objet ou variable de bloc with non definie" dans la fonction menucell, sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set mc = CommandBars("Cell").Controls
    J'ai certainement mal interpreté quelque chose, car pour le moment j'ai pas tout capté dans le code.

    Mais bon si tu peux encore me donner un coup de pouce.*

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    dans ThisWorkbook .. il ne faut ne mettre que le Work...open....

    le reste dans un module public ...

    au passage c'est quoi ta version d'excel..?

  5. #5
    Membre éclairé
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 509
    Par défaut
    Ma version d'excel c'est une version 2003

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    au cas ou le nom du menu ne serai pas Cell en version 2003 essai le code suivant pour lister les noms de "commandBar" dans la fenêtre exécution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub Test()
      Dim mc As CommandBar
      For Each mc In CommandBars
       Debug.Print mc.Name & " = " & mc.NameLocal
       Next
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA - Macro : Action sur click droit souris sur une cellule
    Par Raphael DIAZ dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/02/2011, 10h45
  2. [VBA-E]lancer une macro depuis le bureau
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/02/2007, 14h54
  3. Réponses: 1
    Dernier message: 02/02/2007, 20h12
  4. [VBA-E] Comment Inhiber Le Click Droit De La Souris
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2007, 13h36
  5. [VBA-E]Lancer une macro sur changement de valeur cellule ?
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2006, 14h22

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