× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 [Vba-e] Ajout de sous-menus
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Antoniolav
  Posté le 27/06/2006 @ 16:29 
Aller en bas de la page 
Petit astucien
Bonjour, en réalité, je suis un sous-doué en VBA, je galère pas mal (faut dire que ca fait que 2 semaines que je m'y suis mis, mais QUAND MEME!). J'ai trouvé ce code : [code]Sub AjtCde(Menu As CommandBarPopup, stCde, stSub) Dim m As CommandBarButton Set m = Menu.Controls.Add(Type:=msoControlButton, Temporary:=True) m.Caption = stCde m.OnAction = stSub Set m = Nothing End Sub Sub AddMenu() 'Dans un module standart Dim NewM As CommandBarPopup Dim sMenu1 As CommandBarPopup Dim sMenu2 As CommandBarPopup Set NewM = CommandBars(1).Controls.Add(Type:=msoControlPopup, _ Before:=CommandBars(1).Controls("?").Index, Temporary:=True) NewM.Caption = "Synthese mensuelle" Set sMenu1 = NewM.Controls.Add(Type:=msoControlPopup, Temporary:=True) sMenu1.Caption = "Sous Menu1" Set sMenu2 = NewM.Controls.Add(Type:=msoControlPopup, Temporary:=True) sMenu2.Caption = "Sous Menu2" AjtCde sMenu1, "Ma commande Menu1-1", "Sub1-1" AjtCde sMenu1, "Ma commande Menu1-2", "Sub1-é" AjtCde sMenu2, "Ma commande Menu2-1", "Sub2-1" AjtCde sMenu2, "Ma commande Menu2-2", "Sub2-2" Set sMenu1 = Nothing Set sMenu2 = Nothing Set NewM = Nothing End Sub[/code] ... quelqu'un à qui j'ai expliqué ce que je voulais faire me la donner. Mais je ne comprends pas ce qu'il fait ; Voilà en tout cas mon objectif : [img]http://img383.imageshack.us/img383/3444/sanstitre0oy.jpg[/img] les 2 sous-menus étant liés à des macros déjà codée tout simplement.
Publicité
galopin01
 Posté le 27/06/2006 à 16:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Bonjour, Oui le problème avec les téléchargements c'est qu'on a parfois du mal à distinguer l'essentiel :[code]Sub AddMenu() 'Dans un module standart Dim NewM As CommandBarPopup Dim sMenu1 As CommandBarPopup Dim sMenu2 As CommandBarPopup Set NewM = CommandBars(1).Controls.Add(Type:=msoControlPopup, _ Before:=CommandBars(1).Controls("?").Index, Temporary:=True) NewM.Caption = "Synthese mensuelle" Set sMenu1 = NewM.Controls.Add(Type:=msoControlPopup, Temporary:=True) sMenu1.Caption = "Sous Menu1" sMenu1.OnAction = "Macro1" Set sMenu2 = NewM.Controls.Add(Type:=msoControlPopup, Temporary:=True) sMenu2.Caption = "Sous Menu2" sMenu2.OnAction = "Macro2" Set sMenu1 = Nothing Set sMenu2 = Nothing Set NewM = Nothing End Sub Sub Macro1() MsgBox "Bonjour" End Sub Sub Macro2() MsgBox "Au revoir" End Sub[/code] A+

Modifié par galopin01 le 27/06/2006 16:53
Antoniolav
 Posté le 28/06/2006 à 15:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Ok, j'ai réussi à ajouter mes sous-menus, cependant je n'ai pas exactement ce que je veux : - Des flèches apparaissent à coté des noms des sous-menus, comme si il y avait des sous-sous-menus. Comment les enlever ? - Je n'ai pas besoin de cliquer, mais seulement de survoler les sous-menus pour lancer la macro. C'est embetant. Comment enlever ce phénomène et attendre le clic de l'utilisateur pour exécuter la macro renseignée dans le '.action' ? Merci d'avance
Bérylion
 Posté le 28/06/2006 à 15:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

galopin01 a écrit : [code]Sub AddMenu() 'Dans un module standart Dim NewM As CommandBarPopup Dim sMenu1 As CommandBarPopup Dim sMenu2 As CommandBarPopup Set NewM = CommandBars(1).Controls.Add(Type:=msoControlPopup, _ Before:=CommandBars(1).Controls("?").Index, Temporary:=True) NewM.Caption = "Synthese mensuelle" Set sMenu1 = NewM.Controls.Add(Type:=msoControlButton, Temporary:=True) sMenu1.Caption = "Sous Menu1" sMenu1.OnAction = "Macro1" Set sMenu2 = NewM.Controls.Add(Type:=msoControlButton, Temporary:=True) sMenu2.Caption = "Sous Menu2" sMenu2.OnAction = "Macro2" Set sMenu1 = Nothing Set sMenu2 = Nothing Set NewM = Nothing End Sub Sub Macro1() MsgBox "Bonjour" End Sub Sub Macro2() MsgBox "Au revoir" End Sub[/code]
essaie comme ça, pour voir... [clindoeil]

Modifié par Bérylion le 28/06/2006 16:04
Bérylion
 Posté le 28/06/2006 à 16:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

petite précision : concernant ta question, tu avais demandé 1 menu contenant 2 sous menus en fait, je pense que tu voulais 1 menu contenant 2 boutons si c'est pas ça, redis le, on verra alors excatement ce que tu veux ! @+
Antoniolav
 Posté le 28/06/2006 à 16:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
[img]http://img164.imageshack.us/img164/7655/sanstitre5rl.jpg[/img] En mode débogage, voilà la ligne soulignée : Set sMenu1 = NewM.Controls.Add(Type:=msoControlButton, Temporary:=False) EDIT : oui 2 boutons en fait, sorry !

Modifié par Antoniolav le 28/06/2006 16:04
Bérylion
 Posté le 28/06/2006 à 16:31 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bon, on va faire simple : dans un module standard [code] sub add_nouv_menu () Dim nouvMenu As CommandBarPopup With Application.CommandBars(1) Set nouvMenu = Application.CommandBars("Worksheet Menu Bar").Controls.Add _ (Type:=msoControlPopup, Before:=11, temporary:=True) End With nouvMenu.Caption = "S&ynthèse" nouvMenu.BeginGroup = True With nouvMenu.Controls.Add(msoControlButton) .Caption = "bouton 1" .OnAction = "macro_1" End With With nouvMenu.Controls.Add(msoControlButton) .Caption = "bouton 2" .OnAction = "macro_2" End With End sub Sub macro_1() MsgBox ("MACRO 1") End Sub Sub macro_2() MsgBox ("MACRO 2") End Sub [/code] ça donne quoi ?

Modifié par Bérylion le 28/06/2006 16:53
galopin01
 Posté le 28/06/2006 à 16:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
On reprend :[code]Sub AddMenu() 'Dans un module standart Dim NewM As CommandBarPopup Dim sMenu1 As CommandBarButton Dim sMenu2 As CommandBarButton Set NewM = CommandBars(1).Controls.Add(Type:=msoControlPopup, _ Before:=CommandBars(1).Controls("?").Index, Temporary:=True) NewM.Caption = "Synthese mensuelle" Set sMenu1 = CommandBars(1).Controls("Synthese mensuelle").Controls.Add(msoControlButton) sMenu1.Caption = "Sous Menu1" sMenu1.OnAction = "Macro1" Set sMenu2 = CommandBars(1).Controls("Synthese mensuelle").Controls.Add(msoControlButton) sMenu2.Caption = "Sous Menu2" sMenu2.OnAction = "Macro2" Set sMenu1 = Nothing Set sMenu2 = Nothing Set NewM = Nothing End Sub[/code]
galopin01
 Posté le 28/06/2006 à 16:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
La concurence est rude !
Publicité
Bérylion
 Posté le 28/06/2006 à 16:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

galopin01 a écrit :
La concurence est rude !
boarf ! j'ai aucune chance, chui pas classé en VBA !! [bigsmile]
galopin01
 Posté le 28/06/2006 à 16:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
N'empêche que sur ce coup tu m'as doublé comme un sagoin : Queue de poisson... on a frisé l'accident ! Bah, à mon age on conduit plus très vite, mais on s'en fout : pour aller à la pêche, ça suffit bien. Va juste falloir que je surveille un peu plus mes arrières... [bigsmile]
Antoniolav
 Posté le 29/06/2006 à 10:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Avec le code de Galopin01 cela marche désormais bien. Dernière question : je voudrais qu'en cliquant sur le deuxième bouton du menu que j'ai crée une page internet se lance. Je voudrais donc savoir s'il existe une fonction me permettant ceci, avec une page située sur le DD bien précisée. Merci [rougir]
Bérylion
 Posté le 29/06/2006 à 11:07 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Salut [code] Sub ton_lien() ActiveWorkbook.FollowHyperlink Address:="adresse_complète_de_ton_lien", _ NewWindow:=False, AddHistory:=False End Sub [/code] yaka demander... (macro à affecter à ton 2eme bouton)
Bérylion
 Posté le 29/06/2006 à 11:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Pendant que "certains" sont à la pêche, il faut bien assurer la permanence... [bigsmile]
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
75,09 €Disque dur Toshiba P300 3 To à 75,09 € livré
Valable jusqu'au 28 Mai

Amazon Allemagne propose actuellement le disque dur Toshiba P300 3 To à 69,48 €. Comptez 5,61 € pour la livraison en France soit un total de 75,09 € livré. On le trouve ailleurs à partir de 90 €. Ce disque dur interne de 3 To est SATA 6 Gbps, possède 64Mo de cache et dispose d'une vitesse de rotation de 7200 tpm.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de douanes. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre
147,99 €Disque dur externe USB 3.0 Seagate 8 To à 147,99 €
Valable jusqu'au 30 Mai

Amazon propose actuellement le disque dur Seagate Expansion Desktop Drive 8 To à 147,99 € livré gratuitement alors qu'on le trouve ailleurs à partir de 200 €. Le disque est non soudé et vous pourez le récupérer pour l'utiliser dans un ordinateur, un NAS, etc. Connexion USB 3.0.


> Voir l'offre
39,90 €Lot de 3 prises connectées Wi-Fi TP-Link HS100 à 39,90 €
Valable jusqu'au 30 Mai

Amazon fait une superbe promotion sur le lot de 3 prises connectées Wi-Fi TP-Link HS100 qui passe à 39,90 € alors qu'on les trouve individuellement autour de 25 €. Ces prises peuvent être contrôlées à distance en utilisant l'app gratuite KASA sur votre smartphone (iOS ou Android). Vous pouvez créer des planifications horaires pour allumer ou éteindre automatiquement et quand vous le souhaitez, les appareils qui y sont branchés. Pour en savoir plus, n'hésitez pas à lire notre dossier pratique Contrôler une prise électrique à distance.


> Voir l'offre

Sujets relatifs
problème barre de menus sous word 2007
Sauvegarder sous Office.2013.pro.plus.sp1
Question document texte sous Win XP...
organiser mes contacts sous Excel
Insertion page de couverture sous Word 2013
Page Maker sous Seven ????
Excel 2013 sous Windowss 8.1
Word : comment établir dans un texte ses propres marges de & et sous-& ?
Word 2013 ne demarre plus sous W7 Home basic
Liste déroulante sous Word
Plus de sujets relatifs à [Vba-e] Ajout de sous-menus
 > Tous les forums > Forum Bureautique