Visual Basic pour Applications, ou VBA, permet de programmer un comportement personnalisé dans les classeurs Excel. Une des nombreuses utilisations de VBA est de construire et d`afficher des barres d`outils avec des boutons de commande qui vous sélectionnez l`exécution intégrée dans Excel des commandes ainsi que des macros personnalisées VBA. Au lieu d`utiliser les menus Excel par défaut qui sont optimisés pour l`utilisateur moyen, vous pouvez avoir un contrôle absolu sur lequel les commandes que vous avez un accès rapide à. Puisque le code est intégré dans le classeur lui-même, vos menus personnalisés seront disponibles partout où vous l`ouvrir.
presse "Alt" et "F11" dans le même temps à partir de votre feuille de calcul Excel pour lancer l`éditeur Visual Basic.
Double-cliquez "ThisWorkbook" dans le volet de navigation de gauche pour ouvrir une fenêtre de code vide.
Copiez et collez le code suivant dans la fenêtre de code vide:
AddMenus Sous ()
Dim cMenu1 Comme CommandBarControl
Dim cbMainMenuBar Comme CommandBar
Dim iHelpMenu As Integer
Dim cbcCutomMenu Comme CommandBarControl
»(1) Supprimer une déjà existante. Nous devons utiliser On Error Resume Next _
dans le cas où il n`existe pas.
On Error Resume Next
Application.CommandBars ("Feuille de travail Barre de menus").Contrôles("&Nouveau menu").Effacer
On Error GoTo 0
`(2) Définir une variable CommandBar à la feuille de travail barre de menu
Set cbMainMenuBar = _
Application.CommandBars ("Feuille de travail Barre de menus")
`(3) Retourne le numéro d`index du menu Aide. On peut alors utiliser _
ceci pour placer un menu personnalisé avant.
iHelpMenu = _
cbMainMenuBar.Controls ("Aidez-moi").Indice
`(4) Ajouter un contrôle à la "Feuille de travail Barre de menus" avant Aide.
"Définir une variable CommandBarControl à elle
Set cbcCutomMenu = _
cbMainMenuBar.Controls.Add (Type: = msoControlPopup, _
Avant: = iHelpMenu)
`(5) Donnez le contrôle d`une légende
cbcCutomMenu.Caption = "&-New Menu"
»(6) Travailler avec notre nouveau contrôle, ajoutez un contrôle sous et _
donner une légende et lui dire quelle macro exécuter (OnAction).
Avec cbcCutomMenu.Controls.Add (Type: = msoControlButton)
.Caption = "Menu 1"
.OnAction = "MyMacro1"
Terminer par
`(6a) Ajouter un autre contrôle de sous lui donner une Légende _
et dire quelle macro à exécuter (OnAction)
Avec cbcCutomMenu.Controls.Add (Type: = msoControlButton)
.Caption = "Menu 2"
.OnAction = "MyMacro2"
Terminer par
`Répétez l`étape "6a" pour chaque élément de menu que vous souhaitez ajouter.
«Ajouter un autre menu qui conduira à un autre menu de
"Définir une variable CommandBarControl à elle
Set cbcCutomMenu = cbcCutomMenu.Controls.Add (Type: = msoControlPopup)
«Donnez le contrôle d`une légende
cbcCutomMenu.Caption = "Ne&-xt Menu"
«Ajouter un contol au sous-menu, juste créé ci-dessus
Avec cbcCutomMenu.Controls.Add (Type: = msoControlButton)
.Caption = "&-Charts"
.FaceID = 420
.OnAction = "MyMacro2"
Terminer par
End Sub
Sous DeleteMenu ()
On Error Resume Next
Application.CommandBars ("Feuille de travail Barre de menus").Contrôles("&-New Menu").Effacer
On Error GoTo 0
End Sub
Sous MyMacro1 ()
MsgBox "Je ne fais pas encore beaucoup, dois-je?", VbInformation, "Ozgrid.com"
End Sub
Sous MyMacro2 ()
MsgBox "Je ne fais pas encore beaucoup non plus, dois-je?", VbInformation, "Ozgrid.com"
End Sub
Private Sub Workbook_Activate ()
Courir "AddMenus"
End Sub
presse "F5" pour enregistrer et exécuter le code. Cela va ajouter le menu personnalisé à chaque fois que vous ouvrez le classeur.
Conseils & Avertissements
- Vous pouvez également créer des barres d`outils sans VBA à travers le "Outils gt; Personnaliser" menu.