- 'Procédure appelante ajout d'un menu avec n items
- '----------------------------------------------------------------
- Private Sub Workbook_Open()
- ' remplacer NomDuMenu, NomItemX, ProcedureX (le nombre d'items et de procédures doit être identique
- AjMenuX "NomDuMenu", Array("NomItem1", "NomItem2", "NomItem3"), Array("Procedure1", "Procedure2", "Procedure3")
- End Sub
-
- 'Procédure appelante suppression d'un menu
- '--------------------------------------------------------
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- SuprMenuX ("NomDuMenu")
- End Sub
-
- '================
- 'Procédures appelées
- '================
-
- ' Procédure d'ajout d'un menu
- '-------------------------------------
-
- Sub AjMenuX(NomMenu, TbItem, TbLien)
- Set myMenuBar = CommandBars.ActiveMenuBar
- Set newMenu = myMenuBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
- newMenu.Caption = NomMenu
- For Each Value In TbItem
- Set ctrl1 = newMenu.Controls.Add(Type:=msoControlButton, Id:=I + 1)
- ctrl1.Caption = Value
- ctrl1.TooltipText = Value
- ctrl1.Style = msoButtonCaption
- ctrl1.OnAction = TbLien(I)
- I = I + 1
- Next Value
- End Sub
-
- 'Procédure de supperssion d'un menu
- '-----------------------------------------------
-
- Sub SuprMenuX(NomMenu As String)
- On Error Resume Next
- Set myMenuBar = CommandBars.ActiveMenuBar
- myMenuBar.Controls(NomMenu).Delete
- End Sub
'Procédure appelante ajout d'un menu avec n items
'----------------------------------------------------------------
Private Sub Workbook_Open()
' remplacer NomDuMenu, NomItemX, ProcedureX (le nombre d'items et de procédures doit être identique
AjMenuX "NomDuMenu", Array("NomItem1", "NomItem2", "NomItem3"), Array("Procedure1", "Procedure2", "Procedure3")
End Sub
'Procédure appelante suppression d'un menu
'--------------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
SuprMenuX ("NomDuMenu")
End Sub
'================
'Procédures appelées
'================
' Procédure d'ajout d'un menu
'-------------------------------------
Sub AjMenuX(NomMenu, TbItem, TbLien)
Set myMenuBar = CommandBars.ActiveMenuBar
Set newMenu = myMenuBar.Controls.Add(Type:=msoControlPopup, Temporary:=True)
newMenu.Caption = NomMenu
For Each Value In TbItem
Set ctrl1 = newMenu.Controls.Add(Type:=msoControlButton, Id:=I + 1)
ctrl1.Caption = Value
ctrl1.TooltipText = Value
ctrl1.Style = msoButtonCaption
ctrl1.OnAction = TbLien(I)
I = I + 1
Next Value
End Sub
'Procédure de supperssion d'un menu
'-----------------------------------------------
Sub SuprMenuX(NomMenu As String)
On Error Resume Next
Set myMenuBar = CommandBars.ActiveMenuBar
myMenuBar.Controls(NomMenu).Delete
End Sub