Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/04/2007, 12h13   #1
Invité régulier
 
Inscription : avril 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 47
Points : 8
Points : 8
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.
ekynoxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 12h43   #2
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Pour le principe
Code :
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+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 13h48   #3
Invité régulier
 
Inscription : avril 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 47
Points : 8
Points : 8
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.
ekynoxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 14h03   #4
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
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
Citation:
.Caption = "Barregraphe Dépenses"
est le nom que tu donneras à la commande
Citation:
.OnAction = "BarregrapheDépenses"
est le nom de la macro associé
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2007, 18h14   #5
Invité régulier
 
Inscription : avril 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 47
Points : 8
Points : 8
Ca roule, c'est nikel.
Merci bien, c'est gentil.
ekynoxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 11h16   #6
Invité régulier
 
Inscription : avril 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 47
Points : 8
Points : 8
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.
ekynoxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 11h35   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu places ton code dans la sub Auto_Open, sub que tu places dans un module du fichier concerné.
Code :
1
2
3
Sub Auto_open()
     LaSubQuiVabien
End Sub
et dans la sub "Sub LaSubQuiVabien()" tu mets ton code pour placer ton bouton
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 14h07   #8
Invité régulier
 
Inscription : avril 2007
Messages : 47
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 47
Points : 8
Points : 8
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 :
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.
ekynoxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2007, 15h59   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
J'ai fait ça il y a longtemps, regarde si ça peut t'aider. Place 4 commandes dans un menu principal.
Code :
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"
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h28.


 
 
 
 
Partenaires

Hébergement Web