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]menus contextuels et macros associées


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut [VBA-E]menus contextuels et macros associées
    Je souhaite disposer pour un classeur donné d'options supplémentaires dans le menu contextuel (click droit)

    une de ces options est de nomer la plage de cellule sélectionnée et l'autre est une macro personnelle (affichage_des_données_numériques) et enfin la troisieme option est de pouvoir afficher la fenêtre "modes de calcul" par le menu contextuel.

    Je sais modifier ou ajouter des barres d'outils mais je ne'arrive pas à le faire avec des menus contectuels.
    j'ai essayé cela pour appeler ma fonction personnelle mais ca ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private Sub workbook_activate()
     
    With Application.CommandBars("Cell").Controls.Add(msoControlButton, temporary:=True)
     
    .Caption = "affichage numérique"
    .OnAction = "affichage_des_données_numériques"
     
    End With
     
    End Sub
    Merci d'avance pour l'aide...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    peut-etre avec thisworkbook.open, sinon il va le faire a chaque focus du classeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Workbook_Open()
        Set cmb = Application.CommandBars("Cell").Controls.Add(msoControlButton, temporary:=True)
        With cmb
            .Caption = "A&ffichage numérique"
            .OnAction = "affichage_des_données_numériques"
            .Style = msoButtonCaption
            .TooltipText = "Affichage des données numériques"
            .BeginGroup = True
            .Visible = True
        End With
    End Sub

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut Dysfonctionnement
    Quand j'essaie la solution vers laquelle tu m'orientes, j'ai un message d'erreur, "impossible de trouver la macro'test1.xls!affichage des données numériques'

    Par ailleurs, comment faire pour ajouter une fonction déjà existante? (type nommer les cellules...)

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 3
    Par défaut Ps
    J'oubliais juste d'ajouter que la macro se trouve juste en dessous du programme précédemment cité et que elle fonctionne indépendamment...

    En tous cas la création du menu est en effet plus satisfaisante comme cela, je n'ai pas de redondance si je travaille sur plusieurs classeurs à la fois! Merci cela m'aide déjà pas mal

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si un exemple te suffit, tu peux essayer ça, ça ne coûte rien et tu pourras le supprimer : Un menu sur la barre de menu contenant 4 macros. Suffit d'adapter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub CréationMenuGraphes()
    Set MonControl = CommandBars("Worksheet Menu Bar").Controls _
        .Add(Type:=msoControlPopup)
        With MonControl
            .Caption = "Mise en forme des graphes"
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Barregraphe Dépenses"
                    .OnAction = "BarregrapheDépenses"
                End With
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Camembert Dépenses"
                    .OnAction = "GrapheDépensesAnnée"
                End With
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Barregraphe recettes"
                    .OnAction = "Barregrapherecettes"
                End With
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Camembert recettes"
                    .OnAction = "CamembertDépensesAnnuelles"
                End With
            Set MonMenu = Nothing
        End With
        Set MonControl = Nothing
    End Sub

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Citation Envoyé par hoddepaul
    J'oubliais juste d'ajouter que la macro se trouve juste en dessous du programme précédemment cité et que elle fonctionne indépendamment...
    OK, alors soit tu sors ta macro dans un module standard, soit tu changes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .OnAction = "thisworkbook.affichage_des_données_numériques"

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/10/2014, 15h26
  2. [XL-2003] VBA: Problème avec menus contextuels (récursivité ?)
    Par orpheu dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/02/2012, 22h55
  3. Réponses: 4
    Dernier message: 02/06/2004, 11h19
  4. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  5. [VB6] [MDI] Menus contextuels dans les filles
    Par Rosec dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/09/2002, 14h00

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