VBA Suppression menu Excel puis création menu personnalisé
Gwenandance
Messages postés1Date d'inscriptionmardi 5 décembre 2000StatutMembreDernière intervention10 mars 2008
-
10 mars 2008 à 17:42
cs_inforom
Messages postés36Date d'inscriptionmercredi 8 octobre 2008StatutMembreDernière intervention12 avril 2017
-
1 mars 2009 à 13:32
Bonjour,
Petit problème... J'ai créé un code pour supprimer les barres et menus d'Excel, ainsi qu'un code pour créer un nouveau menu, mais lorsque je lance le 2ème après avoir exécuté le 1er, il ne s'exécute pas... Pourriez-vous m'indiquer ce que je dois changer dans mon code pour afficher mon menu personnalisé après avoir supprimé celui d'Excel (qui s'effectue automatiquement lors de l'ouverture)?
Dans ThisWorkbook:
Private Sub Workbook_Open()
Dim CmdB As CommandBar
For Each CmdB In Application.CommandBars
CmdB.Enabled = False
Next CmdB
End Sub
Dans Module1:
Sub Creer_Menu()
Dim Barre As Object
Set Barre = Application.CommandBars("Worksheet Menu Bar").Controls.Add _
(msoControlPopup, , , , False)
Barre.Caption = "FMIT"
With Barre.Controls.Add(msoControlButton)
.Caption = "Black and Scholes"
.OnAction = "CalculPrixOption"
End With
End Sub
'Exécution de l'action ouvrir formulaire lors du click sur le sous-menu:
Sub CalculPrixOption()
ParametresOption.Show
End Sub
Merci d'avance pour votre aide !!!
@ +
Gwen
A voir également:
VBA Suppression menu Excel puis création menu personnalisé
cs_inforom
Messages postés36Date d'inscriptionmercredi 8 octobre 2008StatutMembreDernière intervention12 avril 2017 1 mars 2009 à 13:32
Bonjour... Il y a juste une confusion dans ton code: au lieu de créer une nouvelle barre et de la mettre à la place de la barre de menus, tu ajoues un controle à la barre existante. Comme tu l'as masquée, rien ne se passe.
Donc voici une suggestion....
Sub Creer_Menu()
' barre est la barre de commandes à créer
' menu est le premier menu
Dim Barre As Object
Dim menu As CommandBarControl
' normalement tu peux donner une nom à l a barre, mais chez oi ça prend beaucoupe de temps, pour rien...
Set Barre = Application.CommandBars.Add(Position:=msoBarTop, MenuBar:=True, temporary:=True)
' rajout d'un premier controle: le menu lui-même
Set menu = Barre.Controls.Add(msoControlPopup)
menu.Caption = "FMIT"
' puis le premier item du menu...
With menu.Controls.Add(msoControlButton)
.Caption = "Black and Scholes"
.OnAction = "CalculPrixOption"
End With
Barre.Enabled = True
Barre.Visible = True
...