Comment personnaliser les menus et les barres de menu dans Excel

Résumé

Cet article explique comment personnaliser des menus et des barres de menus dans Microsoft Excel 2000 et versions ultérieures. Cet article contient des instructions détaillées et des exemples de code pour les gérer et de personnaliser des barres de menus, menus, commandes, sous-menus et menus contextuels dans Microsoft Excel par programme.

DANS CETTE TÂCHE.

INTRODUCTION

Pour effectuer de nombreuses tâches courantes associées à la personnalisation des barres de menus et des menus dans Microsoft Excel 2000, dans Microsoft Excel 2002 et dans Microsoft Office Excel 2003, utilisez la boîte de dialogue Personnaliser . Pour effectuer plus de tâches avancées, ou afin d’adapter les barres de menus et les menus d’un programme personnalisé, vous pouvez souhaiter créer Microsoft Visual Basic pour Applications du code (VBA).

Pour plus d’informations sur l’utilisation de la boîte de dialogue Personnaliser, cliquez sur Aide de Microsoft Excel dans le
Menu aide , tapez Personnaliser la barre de menus dans le Compagnon Office ou l’aide intuitive, puis cliquez sur Rechercher pour afficher la rubrique.


Cet article peut vous aider à apprendre les techniques d’écriture de code VBA pour la personnalisation des barres de menus, menus, éléments de menu, sous-menus et menus contextuels.

Retour au début

Plus d'informations

Microsoft fournit des exemples de programmation à titre d'illustration uniquement, sans garantie expresse ou implicite. Ceci inclut, mais n'est pas limité à, les garanties implicites de qualité marchande ou d'adéquation à un usage particulier. Cet article suppose que vous êtes familiarisé avec le langage de programmation présenté et les outils utilisés pour créer et déboguer des procédures. Les ingénieurs du support technique Microsoft peuvent vous expliquer les fonctionnalités d'une procédure particulière, mais ils ne modifieront pas ces exemples pour fournir des fonctionnalités supplémentaires ou créer des procédures répondant à vos besoins spécifiques.

Exemples de cet article

Les exemples fournis dans cet article utilisent du code VBA dans Excel 2000, Excel 2002 et dans Excel 2003 pour personnaliser les menus. Pour utiliser les exemples de macros, procédez comme suit :
  1. Démarrez Microsoft Excel.
  2. Dans le menu Outils , pointez sur
    Macro, puis cliquez sur Visual Basic Editor.
  3. Dans le menu Insertion , cliquez sur
    Module.
  4. Tapez un des exemples de macro de cet article, ou vous pouvez utiliser une opération de copier-coller pour copier les exemples de macros à une feuille de module.
  5. Dans le menu exécuter , cliquez sur Exécuter Sub/UserForm.
  6. Si la boîte de dialogue Macro s’affiche, cliquez sur le nom de la macro, puis cliquez sur exécuter.
Retour au début

Barres de commandes

Dans Microsoft Office, les barres d’outils, les barres de menus et les raccourcis menus sont contrôlés par programmation comme un type d’objet : les barres de commande. Tous les éléments suivants sont représentés dans VBA par les objets CommandBar :
  • Les barres de menus, les barres d’outils et les menus contextuels.
  • Menus sur les barres de menus et des barres d’outils.
  • Sous-menus dans les menus, sous-menus et menus contextuels.
Vous pouvez modifier n’importe quelle barre de menus intégrée ou d’une barre d’outils intégrée, et vous pouvez créer et modifier des barres d’outils personnalisées, les barres de menus et menus contextuels avec votre code VBA. Vous présentez les fonctionnalités de votre programme en tant que boutons individuels dans des barres d’outils, ou en tant que groupes de noms de commandes dans les menus. Étant donné que les barres d’outils et les menus sont des barres de commandes, vous utilisez le même type de contrôles.

Dans VBA et dans Microsoft Visual Basic, les éléments de menu et les boutons sont représentés par des objets CommandBarButton . Les contrôles contextuels qui affichent les menus et les sous-menus sont représentés par les objets CommandBarPopup . Dans les exemples suivants, le contrôle qui est nommé « Menu » et le contrôle appelé « Sous-menu » sont des menus contextuels qui affichent un menu et un sous-menu. Le menu et le sous-menu sont des objets CommandBar uniques avec leur propre jeu de contrôles.

Dans Microsoft Excel, les barres de menus et les barres d’outils sont appelés le même type d’objet programmable, l’objet CommandBar . Vous utilisez les contrôles dans l’objet CommandBar pour faire référence à des menus, éléments de menus, sous-menus et menus contextuels. Vous utilisez une constante avec chaque contrôle dans l’argument de Type pour spécifier le type de contrôle que vous souhaitez utiliser pour la commande, le menu ou le sous-menu.

Retour au début

Constantes de contrôle

Voici une liste des divers contrôle constantes dans Excel 2003 qui spécifient le type de contrôle de graphique à utiliser pour un contrôle de barre de menu particulier :
  • MsoControlActiveX*
  • MsoControlAutoCompleteCombo***
  • MsoControlButton
  • MsoControlButtonDropdown
  • MsoControlButtonPopup
  • MsoControlComboBox
  • MsoControlCustom
  • MsoControlDropdown
  • MsoControlEdit
  • MsoControlExpandingGrid
  • MsoControlGauge
  • MsoControlGenericDropdown
  • MsoControlGraphicCombo
  • MsoControlGraphicDropdown
  • MsoControlGraphicPopup
  • MsoControlGrid
  • MsoControlLabel
  • MsoControlLabelEx***
  • MsoControlOCXDropDown
  • MsoControlPane **
  • MsoControlPopup
  • MsoControlSpinner***
  • MsoControlSplitButtonMRUPopup
  • MsoControlSplitButtonPopup
  • MsoControlSplitDropdown
  • MsoControlSplitExpandingGrid
  • MsoControlWorkPane**
* = Nouveau dans Microsoft Excel 2000
** = Nouveau dans Microsoft Excel 2002
= Nouveau dans Microsoft Office Excel 2003

Retour au début

Barres de menus

Une barre de menus est une sorte de barre de commandes. Une barre de menus est le type de l’objet où vous ajoutez des menus, des éléments de menu et des sous-menus.

Pour plus d’informations sur la gestion des barres de menus et d’éléments de menu dans Excel, procédez comme suit :
  1. Démarrez l’éditeur Visual Basic de Microsoft.
  2. Dans le menu aide , cliquez sur Aide de Microsoft Visual Basic.
  3. Dans la zone Le Compagnon Office ou dans la
    Zone de l’Aide intuitive , tapez barres de menus, puis cliquez sur Rechercher.
  4. Dans Excel 2003 et Excel 2002, cliquez sur Ajout et gestion des barres de menus et éléments de Menu. Dans Excel 2000, cliquez sur les menus et barres d’outils.
Vous pouvez apporter des modifications à la fois la barre de menus et les contrôles de cette barre de menus au moment de l’exécution. Les modifications que vous apportez à la barre de menus peuvent affecter l’apparence ou la position de la barre de menus. Les modifications que vous apportez aux contrôles dépendent du type de contrôle. Le tableau suivant répertorie les propriétés les plus courantes et les méthodes communes pour la modification de l’état, l’action ou le contenu d’un contrôle :
Propriété ou méthodeObjectif
AjouterAjoute une barre de menus à l’aide de la méthode Add de la collection d’objets CommandBars et en spécifiant la valeur True pour l’argument Menubar .
ActivéSi la propriété Enabled a la valeur TRUE, l’utilisateur peut afficher la barre de menus spécifiée à l’aide de code de Visual Basic. Si la propriété Enabled a la valeur FALSE, l’utilisateur ne peut pas rendre la barre de menus visible. Toutefois, la barre de menus s’affiche dans la liste des barres de commandes disponibles.
ProtectionPermet de protéger la barre de menus des actions utilisateur spécifiques.
PositionSpécifie la position de la nouvelle barre de menu par rapport à la fenêtre du programme. La position de la barre de menus par rapport à la fenêtre du programme peut être une des propriétés constantes MsoBarPosition suivantes : msoBarLeft, msoBarTop, msoBarRight, msoBarBottom, msoBarFloating, msoBarPopup (utilisée pour créer des menus contextuels) ou msoBarMenuBar (pour une utilisation avec Apple Macintosh uniquement).
VisibleSpécifie si le contrôle est visible ou masqué.

Retour au début

Renvoyer un ID pour un contrôle de barre de commandes

L’exemple de code suivant retourne l’ID pour la barre de menus active :
Sub Id_Control ()Dim myId as Object
set myId = CommandBars("Worksheet Menu Bar").Controls("Tools")
MsgBox myId.Caption & Chr(13) & MyId.Id
End Sub


Retour au début

Déterminer le nom de la barre de menus active

L’exemple de code suivant renvoie le nom de la barre de menus active :
Sub MenuBars_GetName()   MsgBox CommandBars.ActiveMenuBar.Name
End Sub


Retour au début

Enregistrer l’état active (pour intégré ou barres de menus personnalisées)

Vous pouvez, si vous le souhaitez, déclarez la variable OriginalMenuBar une variable publique, afin qu’une sous-routine puisse l’utiliser dans une autre sous-routine, tel qu’une sous-routine Auto_Close. Déclaration et utilisation de la variable de cette façon réinitialise la barre de menus de l’utilisateur précédent à son état d’origine. L’exemple de macro suivant réinitialise la barre de menus :
Public OriginalMenuBar as Object
Sub MenuBars_Capture()
Set OriginalMenuBar = CommandBars.ActiveMenuBar
End Sub

Retour au début

Créer une barre de commandes personnalisée

L’exemple de code suivant crée une barre de commandes personnalisée nommée Ma barre de commande:
Sub MenuBar_Create() Application.CommandBars.Add Name:="My command bar" End Sub

Vous pouvez également créer une barre de commandes personnalisée à l’aide de la temporaire : = True argument. La temporaire : = True argument autorise les barres de commandes pour être redéfinis automatiquement lorsque vous quittez Excel. Le code suivant utilise le temporaire : = True argument pour créer une barre de commandes personnalisée :
Sub MenuBar_Create()Application.CommandBars.Add Name:="My command bar", Temporary:=True
End Sub
Retour au début

Afficher une barre de commandes personnalisée

L’exemple suivant crée et affiche une barre de menus personnalisée de Ma barre personnalisée et remplace ensuite la barre de menus intégrée :
Sub MenuBar_Show()Dim myNewBar As Object
Set myNewBar = CommandBars.Add(Name:="Custom1", Position:=msoBarFloating)
' You must first enable your custom menu bar before you make it visible.
' Enabling a menu bar adds it to the list of available menu bars on
' the Customize dialog box.
' Setting the menubar property to True replaces the built-in menu bar.
myNewBar.Enabled = True
myNewBar.Visible = True
End Sub


Retour au début

Supprimer une barre de commandes personnalisée

L’exemple de code suivant supprime la barre de menus personnalisée nommée personnalisé 1:
Sub MenuBar_Delete()   CommandBars("Custom1").Delete
End Sub


Retour au début

Masquer une barre de commandes

L’exemple de code suivant supprime l’intégré
Barre de menus graphique à partir de la liste des barres de menus disponibles :
Sub MenuBar_Display()   CommandBars("Chart").Enabled = False
End Sub

Retour au début

Afficher une barre de commandes

L’exemple de code suivant ajoute l’intégré
Barre de menus graphique à partir de la liste des barres de menus disponibles :
Sub MenuBar_Display()   CommandBars("Chart").Enabled = True
End Sub

Retour au début

Restaurer une barre de commandes

Restauration d’une barre de menus réinitialise les contrôles par défaut (pour les menus et éléments de menu). L’exemple de code suivant rétablit l’intégré
Barre de menus du graphique :
Sub MenuBar_Restore()   CommandBars("Chart").Reset
End Sub
Remarque Vous ne pouvez réinitialiser que les barres de menus intégrées. Vous ne pouvez pas réinitialiser une barre de menus personnalisée.

Retour au début

Menus

Restauration d’une barre de menus réinitialise les contrôles par défaut (pour les menus et éléments de menu). L’exemple de code suivant rétablit l’intégré
Barre de menus du graphique :
Sub MenuBar_Restore()   CommandBars("Chart").Reset
End Sub
Remarque Vous ne pouvez réinitialiser que les barres de menus intégrées. Vous ne pouvez pas réinitialiser une barre de menus personnalisée.

Retour au début

Ajoutez un contrôle de menu personnalisé à une barre de commandes

L’exemple de code suivant ajoute le nom d’un menu que vous ajoutez par programme à la barre de menus feuille de calcul . Par exemple, ce code ajoute le menu nom Nouveau Menu pour l’à la
Barre de menus feuille de calcul .

Remarque Vous pouvez donner à ce menu n'importe le nom que vous voulez.
Sub Menu_Create()Dim myMnu As Object
Set myMnu = CommandBars("Worksheet menu bar").Controls. _
Add(Type:=msoControlPopup, before:=3)
With myMnu
' The "&" denotes a shortcut key assignment (Alt+M in this case).
.Caption = "New &Menu"
End With
End Sub


Retour au début

Désactiver un contrôle de menu sur une barre de commandes

Un contrôle de menu désactivé est supprimé et n'est plus disponible sur une barre de commandes. L’exemple suivant désactive le menu Nouveau Menu :
Sub Menu_Disable()   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = False
End Sub

Retour au début

Permettre à un contrôle de menu sur une barre de commandes

L’exemple de code suivant permet de Nouveau le menu que vous avez désactivé dans la section « Désactiver un contrôle de menu sur une barre de commandes » :
Sub Menu_Disable()   CommandBars("Worksheet menu bar").Controls("New &Menu").Enabled = True
End Sub

Retour au début

Supprimer un contrôle de menu sur une barre de commandes

L’exemple de code suivant supprime le menu Nouveau Menu que vous avez créé dans la section « Ajouter un contrôle de menu personnalisé à une barre de commandes »"à partir de la barre de menus feuille de calcul :
Sub Menu_Delete()   CommandBars("Worksheet menu bar").Controls("New &Menu").Delete
End Sub


Retour au début

Restauration d’un contrôle de menu sur une barre de commandes

L’exemple de code suivant rétablit l’intégré
Barre de menus graphique sur la barre de menus feuille de calcul :

Sub Menu_Restore()Dim myMnu As Object
Set myMnu = CommandBars("Chart")
myMnu.Reset
End Sub

Retour au début

Commandes

La plage de modifications que vous pouvez apporter à une commande dépend du type de contrôle. En général, les boutons sont activés ou sont masqués. Les zones d’édition, zones de liste déroulante et des zones de liste déroulante sont plus polyvalents, dans la mesure où vous pouvez ajouter ou supprimer des éléments de la liste. En outre, vous pouvez déterminer l’action qui est exécutée en examinant la valeur des articles que vous avez sélectionné dans la liste. Vous pouvez modifier l’action de n’importe quel contrôle à une fonction intégrée ou une fonction personnalisée.

Le tableau suivant répertorie les propriétés les plus courantes d’un contrôle et les méthodes de modification de l’état, l’action ou le contenu d’un contrôle :
Propriété ou méthodeObjectif
AjouterAjoute une commande à une barre de commandes.
Méthode AddItemAjoute un élément à la partie de liste déroulante d’une zone de liste déroulante ou une zone de liste déroulante.
StyleSpécifie si l’image du bouton affiche une icône ou une légende.
OnActionSpécifie la procédure à exécuter lorsque l’utilisateur modifie la valeur du contrôle.
VisibleSpécifie si le contrôle est visible ou masqué.

Pour plus d’informations sur les menus dans Excel 2003 et Excel 2002, procédez comme suit :
  1. Démarrez l’éditeur de Script Visual Basic.
  2. Dans le menu aide , cliquez sur Aide de Microsoft Visual Basic.
  3. Dans la zone Rechercher dans l’aide , tapez
    menuset appuyez sur ENTRÉE.
  4. Cliquez sur Ajouter et gérer des barres de menus et d’éléments de Menu (Office).

Retour au début

Ajouter une barre de séparation pour un contrôle de menu

L’exemple de code suivant ajoute une barre de séparation avant la commande de feuille de calcul dans le menu Insertion :
Sub menuItem_AddSeparator()   CommandBars("Worksheet menu bar").Controls("Insert") _
.Controls("Worksheet").BeginGroup = True
End Sub
Remarque Pour supprimer une barre de séparation, définissez la propriété BeginGroup sur False.

Retour au début

Créer un contrôle personnalisé de commande dans un menu

L’exemple de code suivant crée une nouvelle commande nommée Custom1 dans le menu Outils de la
Barre de menus feuille de calcul , puis exécute la macro Code_Custom1 lorsque vous cliquez sur Custom1:
Sub menuItem_Create()   With CommandBars("Worksheet menu bar").Controls("Tools")
.Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1"
.Controls("Custom1").OnAction = "Code_Custom1"
End With
End Sub

Retour au début

Placez une coche en regard d’un contrôle de commande

L’exemple de code suivant place une coche en regard de la commande paramétrable 1 s’il n’est pas sélectionné et supprime ensuite la case à cocher si la commande Custom1 est sélectionnée :
Sub menuItem_checkMark()Dim myPopup as Object

Set myPopup = CommandBars("Worksheet menu bar").Controls("Tools")
If myPopup.Controls("Custom1").State = msoButtonDown Then
' Remove check mark next to menu item.
myPopup.Controls("Custom1").State = msoButtonUp
MsgBox "Custom1 is now unchecked"
Else
' Add check mark next to menu item.
myPopup.Controls("Custom1").State = msoButtonDown
MsgBox "Custom1 is now checked"
End If
End Sub

Retour au début

Désactiver un contrôle de commande sur une barre de commandes

L’exemple de code suivant désactive la commande paramétrable 1 que vous avez créé dans le menu Outils , dans la section « Création d’un contrôle de commande personnalisé dans un menu » :
Sub MenuItem_Disable()Dim myCmd as Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
myCmd.Controls("Custom1").Enabled = False
End Sub

Retour au début

Activer le contrôle d’une commande sur une barre de commandes

L’exemple de code suivant active la commande paramétrable 1 que vous avez désactivé dans la section « Désactiver le contrôle de commande dans une barre de commandes » :
Sub MenuItem_Enable()Dim myCmd as Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("Tools")
myCmd.Controls("Custom1").Enabled = True
End Sub


Retour au début

Supprimer un contrôle de commande d’un menu

L’exemple de code suivant supprime la commande Enregistrer dans le menu fichier :
Sub menuItem_Delete()Dim myCmd As Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
myCmd.Controls("Save").Delete
End Sub


Retour au début

Restauration d’un contrôle intégré de commande d’un menu

Pour restaurer un contrôle de commande d’un menu, vous devez connaître le numéro d’identification (ID) pour le contrôle. Pour déterminer le numéro d’identification, reportez-vous à la section « Renvoyer un ID pour un contrôle de barre de commandes ». L’exemple suivant supprime, puis restaure la commande Enregistrer que vous avez supprimé dans la section « Supprimer un contrôle de commande d’un menu » :
Sub menuItem_Restore()Dim myCmd As Object
Set myCmd = CommandBars("Worksheet menu bar").Controls("File")
' Id 3 refers to the Save menu item control.
myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5
End Sub

Retour au début

Sous-menus

Sous-menus apparaissent sur le côté du menu parent lorsque vous cliquez sur une commande. Une commande est un contrôle de sous-menu possède une petite flèche noire située à l’extrémité droite du nom de la commande.

Retour au début

Ajouter un sous-menu

L’exemple de code suivant ajoute un nouveau sous-menu nommé
NewSub dans le menu Outils sur le
Barre de menus feuille de calcul :
Sub SubMenu_Create()Dim newSub as Object
Set newSub = CommandBars("Worksheet menu bar").Controls("Tools")
With newSub
.Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub"
End With
End Sub

Retour au début

Ajouter une commande à un sous-menu

L’exemple de code suivant ajoute une nouvelle commande nommée
SubItem1 sur le sous-menu NewSub , puis exécute la macro Code_SubItem1 lorsque vous cliquez sur SubItem1:
Sub SubMenu_AddItem()Dim newSubItem as Object
Set newSubItem = CommandBars("Worksheet menu bar") _
.Controls("Tools").Controls("NewSub")
With newSubItem
.Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1"
.Controls("SubItem1").OnAction = "Code_SubItem1"
End With
End Sub


Retour au début

Désactiver un contrôle de commande d’un sous-menu

L’exemple de code suivant désactive la même commande de sous-éléments que vous avez créé dans la section « Ajouter une commande à un sous-menu »" :
Sub SubMenu_DisableItem()   CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Controls("SubItem1").Enabled = False
End Sub


L’exemple suivant active la même commande de sous-élément :
Sub SubMenu_DisableItem()   CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Controls("SubItem1").Enabled = True
End Sub

Retour au début

Supprimer une commande d’un sous-menu

L’exemple suivant supprime la commande SubItem1 que vous avez créé dans le sous-menu NewSub dans la section « Ajouter une commande à un sous-menu » :
Sub SubMenu_DeleteItem()   CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Controls("SubItem1").Delete
End Sub


Retour au début

Désactiver un contrôle de sous-menu

L’exemple de code suivant désactive le sous-menu NewSub que vous avez créé dans le menu Outils , dans la section « Ajout d’un sous-menu » :
Sub SubMenu_DisableSub()   CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Enabled = False
End Sub
Remarque Pour activer le contrôle désactivé, définissez la propriété Enabled sur True.

Retour au début

Supprimer un contrôle de sous-menu

L’exemple de code suivant supprime le sous-menu NewSub que vous avez créé dans le menu Outils , dans la section « Ajout d’un sous-menu » :
Sub SubMenu_DeleteSub()   CommandBars("Worksheet menu bar").Controls("Tools") _
.Controls("NewSub").Delete
End Sub

Retour au début

Barres de menu contextuel

Un menu contextuel est une barre de commandes flottante qui s'affiche lorsque l'utilisateur fait un clic-droit sur un objet. Une barre de menus de raccourcis peut contenir les mêmes types de contrôles sous la forme d'une barre de commandes et les contrôles se comportent comme les contrôles de barre de commandes. Vous ne pouvez pas créer ou modifier des menus contextuels à partir de l’interface du programme dans la plupart des programmes. Par conséquent, vous devez créer et modifier vos menus contextuels au moment de l’exécution.

Pour plus d’informations sur les menus contextuels dans Excel 2002 et Excel 2003, procédez comme suit :
  1. Démarrez l’éditeur de Script Visual Basic.
  2. Dans le menu aide , cliquez sur Aide de Microsoft Visual Basic.
  3. Dans la zone Rechercher dans l’aide , tapez
    raccourciet appuyez sur ENTRÉE.
  4. Cliquez sur Ajouter et afficher des Menus contextuels.
Retour au début

Créer une nouvelle barre de menu contextuel

L’exemple de code suivant crée une nouvelle barre de menus de raccourci nommé myShortcutBar:
Sub Shortcut_Create()Dim myShtCtBar as Object
Set myShtCtBar = CommandBars.Add(Name:="myShortcutBar", _
Position:=msoBarPopup)
‘ This displays the shortcut menu bar.
‘ 200, 200 refers to the screen position in pixels as x and y coordinates.
myShtCtBar.ShowPopup 200,200
End Sub


Remarque La barre de menu contextuel s’affiche vide car aucun contrôle (éléments de menus ou sous-menus) n’ont été ajoutés à celle-ci.

Retour au début

Menus contextuels

Les barres de menu contextuel s'affichent lorsque vous utilisez le bouton droit de la souris pour cliquer sur un objet Excel spécifique. Excel dispose de plusieurs barres de menus raccourci pour lesquels une variété de menus sont disponibles. Vous pouvez également créer des barres de menus contextuels personnalisés et personnaliser les barres de menus intégrées.

Retour au début

Création d’une commande sur une barre de menu contextuel

L’exemple de code suivant crée une nouvelle commande de menu nommé Item1 sur la barre de menu contextuel myShortcutBar et qu’il exécute la macro Code_Item1 lorsque vous cliquez sur élément1:
Sub Shortcut_AddItem()Dim myBar as Object
Set myBar = CommandBars("myShortcutBar")
With myBar
.Controls.Add (Type:=msoControlButton, before:=1).Caption = "Item1"
.Controls("Item1").OnAction = "Code_Item1"
End With
myBar.ShowPopup 200,200
End Sub

Retour au début

Désactiver un contrôle de commande sur une barre de menu contextuel

L’exemple de code suivant désactive la commande Item1 que vous avez créé dans la section « créer une commande dans un menu contextuel » :
Sub Shortcut_DisableItem()   Set myBar = CommandBars("myShortcutBar")
myBar.Controls("Item1").Enabled = False
myBar.ShowPopup 200,200
End Sub
Remarque Pour activer l’élément désactivé, la propriété Enabled la valeur true.

Retour au début

Supprimer une commande dans une barre de menu contextuel

L’exemple de code suivant supprime la commande de menu nommé Item1 sur la barre de menu contextuel myShortcutBar :
Sub Shortcut_DeleteItem()   Set myBar = CommandBars("myShortcutBar")
myBar.Controls("Item1").Delete
myBar.ShowPopup 200,200
End Sub

Retour au début

Supprimer une barre de menu contextuel

Suppression de la barre de menu contextuel supprime tous les éléments. Vous ne pouvez pas restaurer une barre de menus de personnalisé supprimé. Pour la restaurer, vous devez recréer et tous les éléments de menu et les sous-menus.

L’exemple de code suivant supprime la barre de menu contextuel myShortCutBar que vous avez créé dans la section « Création d’une commande sur une barre de menu contextuel » :
Sub Shortcut_DeleteShortCutBar()   CommandBars("MyShortCutBar").Delete
End Sub

Retour au début

Restaurer une commande sur une barre de menus contextuels intégrés

L’exemple de code suivant rétablit les commandes par défaut sur la barre de menu contextuel cellule de feuille de calcul :
Sub Shortcut_RestoreItem()   CommandBars("Cell").Reset
End Sub

Retour au début

Sous-menus dans les menus contextuels

Vous pouvez créer des sous-menus sur raccourci des barres de menus. Lorsque vous cliquez sur un contrôle de commande, sous-menus apparaissent sur le côté du menu parent. Une commande est un contrôle de sous-menu possède une petite flèche noire qui se trouve à droite de son nom.

Retour au début

Créer un sous-menu sur une barre de menu contextuel

L’exemple suivant ajoute un nouveau sous-menu nommé
NewSub dans le menu contextuel de cellule de feuille de calcul :

Sub ShortcutSub_Create()   CommandBars("Cell").Controls.Add(Type:=msoControlPopup, before:=1) _
.Caption = "NewSub"
' This displays the shortcut menu bar.
' 200, 200 refers to the screen position in pixels as x and y coordinates.
CommandBars("Cell").ShowPopup 200, 200
End Sub
Remarque Le sous-menu est vide car aucun élément de menu n’ont été ajoutés à celle-ci.

Retour au début

Créer un contrôle de commande d’un sous-menu qui se trouve sur une barre de menu contextuel

La macro suivante ajoute la commande SubItem1 à la NewSub de sous-menu que vous créé dans le menu contextuel de cellule et exécute la macro Code_SubItem1 lorsque vous cliquez sur SubItem1:
Sub ShortcutSub_AddItem()Dim newSubItem as Object
Set newSubItem = CommandBars("Cell").Controls("NewSub”)
With newSubItem
.Controls.Add(Type:=msoControlButton, before:=1).Caption = "subItem1"
' This will run the subItem1_Code macro when subItem1 is clicked.
.Controls("subItem1").OnAction = "Code_subItem1"
End With
' This displays the Cell shortcut menu bar.
' 200, 200 refers to the screen position in pixels as x and y coordinates
CommandBars("Cell").ShowPopup 200, 200
End Sub

Retour au début

Désactiver un contrôle d’élément de sous-menu dans un menu contextuel

L’exemple de code suivant désactive la commande SubItem1 dans le sous-menu de NewSub :
Sub ShortcutSub_DisableItem()   CommandBars("Cell").Controls("NewSub") _
.Controls("subItem1").Enabled = False
' This displays the Cell shortcut menu bar.
' 200, 200 refers to the screen position in pixels as x and y coordinates.
CommandBars("Cell").ShowPopup 200, 200
End Sub
Remarque Pour activer un élément désactivé, la propriété Enabled la valeur true.

Retour au début

Supprimer un contrôle d’élément de sous-menu dans un menu contextuel

L’exemple suivant supprime la commande SubItem1 dans le sous-menu de NewSub :
Sub ShortcutSub_DeleteItem()   CommandBars("Cell").Controls("NewSub").Controls("subItem1").Delete
' This displays the Cell shortcut menu bar.
' 200, 200 refers to the screen position in pixels as x and y coordinates.
CommandBars("Cell").ShowPopup 200, 200
End Sub


Retour au début

Désactiver un contrôle de sous-menu d’un menu contextuel

L’exemple de code suivant désactive le sous-menu NewSub sur la barre de menu contextuel cellule :
Sub ShortcutSub_DisableSub()   CommandBars("Cell").Controls("NewSub").Enabled = False
' This displays the Cell shortcut menu bar.
' 200, 200 refers to the screen position in pixels as x and y coordinates.
CommandBars("Cell").ShowPopup 200, 200
End Sub
Remarque Pour activer un élément désactivé, la propriété Enabled la valeur true.

Retour au début

Supprimer un contrôle de sous-menu d’un menu contextuel

L’exemple de code suivant supprime le sous-menu NewSub que vous avez créé dans la barre de menu contextuel cellule :
Sub ShortcutSub_DeleteSub()   CommandBars("Cell").Controls("NewSub").Delete
' This displays the Cell shortcut menu bar.
' 200, 200 refers to the screen position in pixels as x and y coordinates.
CommandBars("Cell").ShowPopup 200, 200
End Sub


Retour au début

En savoir plus

Les ressources suivantes sont disponibles pour fournir plus d’informations sur la façon de personnaliser les menus et les barres de menu dans Excel.

Retour au début

Explorateur d’objets

L’Explorateur d’objets contient une liste complète de toutes les propriétés et toutes les méthodes pour une commande spécifique. Pour trouver ces informations, basculez vers l’éditeur Visual Basic (appuyez sur ALT + F11), cliquez sur Explorateur d’objets dans le menu affichage (ou appuyez sur F2), tapez le nom du contrôle dans la zone Rechercher , puis appuyez sur entrée ou cliquez sur
Recherche.

Retour au début

Base de connaissances Microsoft.

La Base de connaissances est une source d’informations produits Microsoft principale pour les techniciens du support technique Microsoft Product Support Services. La Base de connaissances Microsoft est également disponible pour les clients de Microsoft. Cette base de données complète contient des articles détaillés offrant des informations techniques sur les produits Microsoft, les informations de résolution répertorie les erreurs de documentation et des réponses aux questions et support technique.

Pour vous connecter à la Base de connaissances Microsoft, visitez le site Web de Microsoft à l’adresse suivante, puis suivez les instructions qui s’affichent sur la page :Retour au début
Propriétés

ID d'article : 830502 - Dernière mise à jour : 18 févr. 2017 - Révision : 2

Commentaires