Menu en vba
boby87000
Messages postés
113
Date d'inscription
Statut
Membre
Dernière intervention
-
cousinhub29 Messages postés 1074 Date d'inscription Statut Membre Dernière intervention -
cousinhub29 Messages postés 1074 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
j'ai crée une menu sur ma feuille excel avec un code VBA et je voudrais créer d'autres en les espaçants de la sorte :
Mon menu
--Quiter
--Annuler
--------------
--Ouvrir
--Aditionner
--Soustraire
Voila mon code çi dessus. Pouvez vous m'aider?
Private Sub Workbook_Open()
addCQTMToolbar
'addCQTMToolbar1
End Sub
Private Sub addCQTMToolbar()
Const menuName = "Mon menu "
Dim menuItems(1, 1) As String
Dim value As Variant
Dim i As Integer
Dim myMenuBar As CommandBar
Dim newMenu As CommandBarControl
Dim ctrl1 As CommandBarControl
menuItems(0, 0) = "Quiter.."
menuItems(1, 0) = "Annuler"
On Error Resume Next
Set myMenuBar = Application.CommandBars.ActiveMenuBar
myMenuBar.Controls(menuName).Delete
Set newMenu = myMenuBar.Controls.Add(msoControlPopup, , , 10, True)
newMenu.Caption = menuName
For i = 0 To UBound(menuItems, 1)
Set ctrl1 = newMenu.Controls.Add(msoControlButton, i + 1)
ctrl1.Caption = menuItems(i, 0)
ctrl1.TooltipText = menuItems(i, 0)
ctrl1.Style = msoButtonCaption
ctrl1.OnAction = menuItems(i, 1)
Next
Err.Clear
End Sub
Merci pour votre aide
Bonjour,
j'ai crée une menu sur ma feuille excel avec un code VBA et je voudrais créer d'autres en les espaçants de la sorte :
Mon menu
--Quiter
--Annuler
--------------
--Ouvrir
--Aditionner
--Soustraire
Voila mon code çi dessus. Pouvez vous m'aider?
Private Sub Workbook_Open()
addCQTMToolbar
'addCQTMToolbar1
End Sub
Private Sub addCQTMToolbar()
Const menuName = "Mon menu "
Dim menuItems(1, 1) As String
Dim value As Variant
Dim i As Integer
Dim myMenuBar As CommandBar
Dim newMenu As CommandBarControl
Dim ctrl1 As CommandBarControl
menuItems(0, 0) = "Quiter.."
menuItems(1, 0) = "Annuler"
On Error Resume Next
Set myMenuBar = Application.CommandBars.ActiveMenuBar
myMenuBar.Controls(menuName).Delete
Set newMenu = myMenuBar.Controls.Add(msoControlPopup, , , 10, True)
newMenu.Caption = menuName
For i = 0 To UBound(menuItems, 1)
Set ctrl1 = newMenu.Controls.Add(msoControlButton, i + 1)
ctrl1.Caption = menuItems(i, 0)
ctrl1.TooltipText = menuItems(i, 0)
ctrl1.Style = msoButtonCaption
ctrl1.OnAction = menuItems(i, 1)
Next
Err.Clear
End Sub
Merci pour votre aide
A voir également:
- Menu en vba
- Menu déroulant excel - Guide
- Canon quick menu - Télécharger - Utilitaires
- Excel menu déroulant en cascade - Guide
- Windows 11 menu contextuel classique - Guide
- Windows 11 menu démarrer classique - Guide
1 réponse
Bonjour,
Modifie ainsi ton code :
Et dans un module standard, tu mets ces procédures :
Les MsgBox étant bien évidemment remplacés par tes codes...
Bonne nuit
Modifie ainsi ton code :
Private Sub addCQTMToolbar() Const menuName = "Mon menu " Dim menuItems(4, 1) As String Dim value As Variant Dim i As Integer Dim myMenuBar As CommandBar Dim newMenu As CommandBarControl Dim ctrl1 As CommandBarControl menuItems(0, 0) = "Quitter..": menuItems(0, 1) = "Proc_Quitter" menuItems(1, 0) = "Annuler": menuItems(1, 1) = "Proc_Annuler" menuItems(2, 0) = "Ouvrir": menuItems(2, 1) = "Proc_Ouvrir" menuItems(3, 0) = "Additionner": menuItems(3, 1) = "Proc_Additionner" menuItems(4, 0) = "Soustraire": menuItems(4, 1) = "Proc_Soustraire" On Error Resume Next Set myMenuBar = Application.CommandBars.ActiveMenuBar myMenuBar.Controls(menuName).Delete On Error GoTo 0 Set newMenu = myMenuBar.Controls.Add(msoControlPopup, , , 10, True) newMenu.Caption = menuName For i = LBound(menuItems) To UBound(menuItems) Set ctrl1 = newMenu.Controls.Add(msoControlButton) ctrl1.Caption = menuItems(i, 0) ctrl1.TooltipText = menuItems(i, 0) ctrl1.Style = msoButtonCaption ctrl1.OnAction = menuItems(i, 1) If i = 2 Then ctrl1.BeginGroup = True Next End Sub
Et dans un module standard, tu mets ces procédures :
Sub Proc_Quitter() MsgBox "Je quitte" End Sub Sub Proc_Annuler() MsgBox "J'annule" End Sub Sub Proc_Ouvrir() MsgBox "J'ouvre" End Sub Sub Proc_Additionner() MsgBox "J'additionne" End Sub Sub Proc_Soustraire() MsgBox "Je soustraits" End Sub
Les MsgBox étant bien évidemment remplacés par tes codes...
Bonne nuit