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

VBA Discussion :

Menu deroulant pour plusieurs macro


Sujet :

VBA

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut Menu deroulant pour plusieurs macro
    Bonjour a tous,

    J'ai developpe un nombre consequent de macros mais j'aimerai les associees a un menu deroulant qui indique a l'utilisateur dans quel ordre elles doivent etre enclenchees.
    Je ne peux pas les mettre a la suite car l'utilisateur a des verifications a faire entre chaque macro.

    Merci d'avance pour votre aide.

  2. #2
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour le principe
    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
    30
    31
    32
    Sub CréationMenuGraphes2()
    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 = Nothing
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Camembert Dépenses"
                    .OnAction = "GrapheDépensesAnnée"
                End With
            Set MonMenu = Nothing
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Barregraphe recettes"
                    .OnAction = "Barregrapherecettes"
                End With
            Set MonMenu = Nothing
            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
    Tu pourras adapter ?
    Tu dis
    A+

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut
    Salut,
    Vraiment bien ce forum par rapport aux autres qui te repondent 1 semaine si ils te repondent : merci ouskel'n'or.

    Je vais reformuler ma question je crois je n'ai pas ete assez clair.
    En fait l'idee est de faire apparaitre un menu deroulant dans la barre d'outil.
    En cliquent sur le nom du menu l'utilisateur pourrait voir etape 1, etape 2, etape 3...
    Moi je ne sais qu'associer une macro a un bonhomme ou a quelquechose du genre dans la barre de menu. ( View -> Toolbar -> Customize -> Commands --> Macros )
    Mais mettre 9 bonhommes pour mes 9 macro c'est vraiment pas la solution.
    Merci.
    Je sais que cela est possible car un interimaire l'a fait sur un classeur pour automatiser des updates et quand on l'ouvre on a le menu deroulant.
    Seulement, il est parti avant que je demarre mon stage.

    Merci.

  4. #4
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Teste déjà mon code. Un clic droit sur ta barre de menus -> personnaliser, te permettront de supprimer le menu créé -> Sélection -> Clic gauche, tu le sorts de la barre, tu relaches, il disparaît
    Avant de le supprimer, fais un clic sur le menu créé, tu auras les différentes commandes qu'il contient.
    Ensuite, essaie de comprendre
    .Caption = "Barregraphe Dépenses"
    est le nom que tu donneras à la commande
    .OnAction = "BarregrapheDépenses"
    est le nom de la macro associé
    A+

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut
    Ca roule, c'est nikel.
    Merci bien, c'est gentil.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    j'ai adapter le code de ouskel'n'or et ca marche effectivement probleme.
    La requete qui m'a ete faite est que ce menu deroulant apparaisse automatiquement sur la barre d'outil des lors que l'utilisateur ouvre le fichier excel concerne.
    Pour le moment ce n'est pas le cas car une macro doit etre lance par l'utilisateur pour faire apparaitre ce menu.

    Merci d'avance pour votre aide.

  7. #7
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    Tu places ton code dans la sub Auto_Open, sub que tu places dans un module du fichier concerné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Auto_open()
         LaSubQuiVabien
    End Sub
    et dans la sub "Sub LaSubQuiVabien()" tu mets ton code pour placer ton bouton
    A+

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 26
    Points
    26
    Par défaut >
    Auto open fonctionne bien mais j'ai un soucis concernant un sous menu d'un autre sous menu. Je m'explique:


    J'ai teste le code suivant:
    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
    Set ctrl4 = newMenu.Controls.Add(Type:=msoControlPopup)
            ctrl4.Caption = "Logistique"
     
        Set ctrl41 = newMenu.Controls.Add(Type:=msoControlPopup)
        ctrl41.Caption = "Wk0,+1"
     
     
            With ctrl41.Controls
                 Set ctrl411 = .Add(Type:=msoControlButton)
                 ctrl411.Caption = "UK Compal"
                 ctrl411.Style = msoButtonCaption
                 ctrl411.OnAction = "UK_Compal"
                 End With
     
                 With ctrl41.Controls
                     Set ctrl412 = .Add(Type:=msoControlButton)
                     ctrl412.Caption = "ME"
                     ctrl412.Style = msoButtonCaption
                     ctrl412.OnAction = "MiddleEast"
                     End With
    J'obtiens :
    -Le menu"Logistique" ne contient pas de sous menu
    -Le menu "Wk0,+1" contient "UK Compal" et "ME".

    Le probleme est que jaimerai avoir le menu "Wk0,+1" (avec ses sous menu UK Compal et ME )dans le menu "Logistique.

    Merci d'avance.

  9. #9
    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
    Points : 15 543
    Points
    15 543
    Par défaut
    J'ai fait ça il y a longtemps, regarde si ça peut t'aider. Place 4 commandes dans un menu principal.
    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
    30
    31
    32
    Sub CréationMenuGraphes2()
    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 = Nothing
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Camembert Dépenses"
                    .OnAction = "GrapheDépensesAnnée"
                End With
            Set MonMenu = Nothing
            Set MonMenu = MonControl.Controls.Add(msoControlButton)
                With MonMenu
                    .Caption = "Barregraphe recettes"
                    .OnAction = "Barregrapherecettes"
                End With
            Set MonMenu = Nothing
            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
    Tu peux le tester pour voir si ça te convient, tu le supprimes avec "personnaliser"

Discussions similaires

  1. Réponses: 10
    Dernier message: 01/03/2010, 17h06
  2. pb mise a jour menu deroulant pour calcul
    Par popofpopof dans le forum IHM
    Réponses: 6
    Dernier message: 16/08/2007, 21h34
  3. menu deroulant pour base de donnees
    Par neuneu1 dans le forum Bases de données
    Réponses: 4
    Dernier message: 26/04/2007, 17h06
  4. utiliser un menu unique pour plusieurs pages...
    Par brouette dans le forum ActionScript 1 & ActionScript 2
    Réponses: 8
    Dernier message: 17/12/2006, 01h29
  5. [Debutant]Formulaire menu deroul.+link pour nouvelle option
    Par Marc_3 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 04/04/2005, 09h52

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