Barres de menu et sous menu

elolydie Messages postés 5 Date d'inscription jeudi 2 septembre 2004 Statut Membre Dernière intervention 16 mai 2005 - 2 mars 2005 à 18:10
Ednour Messages postés 7 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 18 juin 2010 - 17 juin 2010 à 14:50
Bonjour,

Je cherche à créer une barre de menu personnalisée qui contient des sous menus.
Mon problème est de réussir à créer les boutons dand ce sous menu, je n'arrive pas à appeler ce sous menu pour y créé un control.

Voici le début de mon code :

Sub barre()


Dim bar, barMenu As CommandBar
Dim menu, menu2 As CommandBarPopup
Dim bt As CommandBarButton


Set barMenu = CommandBars.Add("Barre")
With barMenu
.Visible = True
.Position = msoBarFloating
End With

Set menu = Application.CommandBars("Barre").Controls.Add(msoControlPopup, , , , True)
With menu
.Visible = True
.Caption = "Détail de l'affichage de l'onglet"
End With

Set menu2 = Application.CommandBars("Barre").Controls(2)


With menu2.Controls.Add(msoControlPopup)
.Visible = True
.Caption = "Sous menu 1..."
End With


With menu2.Controls.Add(msoControlPopup)
.Visible = True
.Caption = "Sous menu 2..."
End With

'Cette création de bouton ne se crée pas dans le sous menu mais dans le menu !
Set menu2a = Application.CommandBars("Barre").Controls.Add(msoControlButton)
With menu2a
.Visible = True
.Caption = "Bouton 1"
.Style = msoButtonCaption
.OnAction = "action"
End With


end Sub

Je pense qu'il me manque juste la syntaxe qui permet d'appeler le sous menu mais je n'ai pas trouvé dans l'aide.

Merci d'avance de votre aide.

EloLydie

5 réponses

cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
2 mars 2005 à 22:17
Salut, peut tu preciser ce que tu utilises ? VB6 ? VB.net ? Et si tu utilise VB6 preciser quel contrôle tu utilise (apparement tu utilises un contrôle). Sinon est-ce que tu as essayé:

Set menu2a = Menu2.Add(msoControlButton)
With menu2a
.Visible = True
.Caption = "Bouton 1"
.Style = msoButtonCaption
.OnAction = "action"
End With


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
2 mars 2005 à 23:51
Essaie ce code

Sub CréerBarreOutils()
Dim TBar As CommandBar
Dim NewMenu As CommandBarPopup
Dim MenuItem As CommandBarControl
Dim SubMenuItem As CommandBarButton
On Error Resume Next
CommandBars("Barre").Delete
On Error GoTo 0
Set TBar = CommandBars.Add
With TBar
.Name = "Barre"
.Visible = True
End With

Set NewMenu = CommandBars("Barre").Controls.Add(Type:=msoControlPopup)
NewMenu.Caption = "Détails de l'affichage de l'onglet"
NewMenu.Visible = True

Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton)MenuItem.Caption = "Sous menu 1..."

Set MenuItem = NewMenu.Controls.Add(Type:=msoControlButton)
MenuItem.Caption = "Sous menu 2..."
MenuItem.OnAction = "Action"

End Sub

jpleroisse
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
2 mars 2005 à 23:56
suite à la remarque de Warning, je précise que ce code est fait dans un module Excel

jpleroisse
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
3 mars 2005 à 00:02
Ah tout s'explique ! J'y avais meme pas pensé.

Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ednour Messages postés 7 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 18 juin 2010
17 juin 2010 à 14:50
'Bonjour,
'Ce code fonctionne parfaitement
Sub Auto_open()
Sheets("Menu").Select
Aj_menu_perso 'appel à la procédure Ajouter le menu perso
End Sub
Sub Aj_menu_perso()
Dim Feuille As Worksheet 'besoin pour mon application
Dim Cbar As CommandBar, Cbut As CommandBarButton
Dim Cpop1 As CommandBarPopup, Cpop2 As CommandBarPopup, Cpop3 As CommandBarPopup, Cpop4 As CommandBarPopup
Dim x As Byte

Set Cbar = CommandBars.Add(Name:="MaBarre", Position:=msoBarTop, Temporary:=True)
Cbar.Protection = msoBarNoMove + msoBarNoCustomize 'Barre vérrouillée

Set Cpop1 = Cbar.Controls.Add(msoControlPopup)
With Cpop1
.Caption = "Fichiers"
.Tag = "sm1"
End With

Set Cpop2 = Cbar.Controls.Add(msoControlPopup)
With Cpop2
.Caption = "Consultations"
.Tag = "sm2"
End With

Set Cpop3 = Cbar.Controls.Add(msoControlPopup)
With Cpop3
.Caption = "Commentaires"
.Tag = "sm3"
End With

Set Cpop4 = Cbar.Controls.Add(msoControlPopup)
With Cpop4
.Caption = "A Propos"
.OnAction = "Ex_Auteur"
End With

Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption 'icône avant nombouton
.FaceId = 4 'code icône interne
.Caption = "Imprimer"
.OnAction = "Ex_Imprimer"

End With
Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 271
.Caption = "Enregistrer"
.OnAction = "Ex_Enregistrer"
End With

Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 1019
.Caption = "Quitter"
.OnAction = "Ex_Quitter"

End With
Set Cbut = Cpop1.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 1016
.Caption = "Accueil"
.OnAction = "Ex_Menu"

End With

Set Cbut = Cpop2.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 125
.Caption = "Stat. Janvier"
.OnAction = "Ex_Jan"
End With

Set Cbut = Cpop2.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 125
.Caption = "Stat. Février"
.OnAction = "Ex_Fev"
End With

Set Cbut = Cpop2.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 125
.Caption = "Stat. Mars"
.OnAction = "Ex_Mar"
End With

Set Cbut = Cpop2.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 125
.Caption = "Stat. Avril"
.OnAction = "Ex_Avr"
End With

Set Cbut = Cpop3.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 352
.Caption = "Afficher"
.OnAction = "Com_Aff"
End With

Set Cbut = Cpop3.Controls.Add(msoControlButton)
With Cbut
.Style = msoButtonIconAndCaption
.FaceId = 351
.Caption = "Masquer"
.OnAction = "Com_Maq"
End With

Cbar.Visible = True

End Sub

Sub Del_menu_perso()
On Error Resume Next
CommandBars("MaBarre").Delete 'Suppression du menu perso
End Sub

'A adapter, bien sur.
0
Rejoignez-nous