Vous pouvez utiliser les macros Access pour créer des menus contextuels personnalisés qui s’affichent lorsque vous cliquez avec le bouton droit sur des formulaires, des états ou des contrôles individuels. Vous pouvez également créer des menus personnalisés qui s’affichent dans le ruban pour des formulaires ou états spécifiques.
Pour créer un menu à l’aide de macros, vous effectuez trois étapes principales :
- Créez un objet macro avec des sous-macros qui contiennent les commandes de menu.
- Créez un autre objet macro qui crée le menu lui-même.
- Joindre le menu à un contrôle, un formulaire, un état ou à la base de données dans son ensemble.
Les sections suivantes vous guident tout au long de ces étapes.
Conseil
Pour découvrir comment créer des menus contextuels personnalisés dans Access à l’aide de code Visual Basic pour Applications (VBA), consultez l’article Créer un menu contextuel pour un formulaire, un contrôle de formulaire ou un état.
Étape 1 : Créer un objet macro avec des sous-macros qui contiennent les commandes de menu
Dans cette étape, vous créez un objet macro avec des sous-macros, chaque sous-macro étant une commande distincte dans votre menu contextuel.
Qu’est-ce qu’une sous-macro ?
Vous pouvez utiliser une sous-macro dans un objet macro pour définir un ensemble d’actions de macro. Les sous-macros au sein d’un objet macro peuvent être appelées séparément de divers événements de contrôle et d’objet. Les sous-macros individuelles d’un objet macro ont chacune un nom unique et peuvent contenir une ou plusieurs actions de macro.
Sous l’onglet Créer, accédez au groupe Macros et code, puis cliquez sur Macro.
Pour chaque commande souhaitée dans votre menu contextuel personnalisé :
Ajoutez une sous-macro à la fenêtre de création de macro et nommez la sous-macro en fonction de votre souhait dans le menu contextuel (par exemple, « Imprimer » ou « Actualiser »).
Conseil
Pour créer une touche d’accès de sorte que vous puissiez utiliser le clavier pour choisir la commande, tapez une esperluette (&) avant la lettre que vous souhaitez utiliser comme clé d’accès rapide dans le nom de la commande (par exemple, « &Actualiser »). Cette lettre sera soulignée sur le menu.
Dans la sous-macro, sélectionnez la première action que vous souhaitez effectuer lorsque vous cliquez sur la commande dans le menu contextuel.
S’il y a plus d’actions que vous souhaitez effectuer lorsque vous sélectionnez cette commande, ajoutez-les en tant qu’actions de macro distinctes dans la même sous-macro.
Enregistrez et nommez l’objet macro, par exemple, mcrShortcutMenuCommands.
L’illustration suivante montre un exemple d’objet macro avec trois sous-macros pour un menu personnalisé ou un menu contextuel.
Étape 2 : Créer un deuxième objet macro qui crée le menu
Cette étape peut sembler redondante, mais pour créer le menu contextuel à partir de l’objet macro que vous avez créé à l’étape 1, vous devez créer un deuxième objet macro contenant l’action macro AddMenu. Cette action de macro est parfois appelée « macro de menu ».
- Sous l’onglet Créer, accédez au groupe Macros et code, puis cliquez sur Macro.
- Dans la zone de liste modifiable Ajouter une nouvelle action de la fenêtre de conception de macro, sélectionnez AjouterMenu.
- Dans la zone d’argument Nom du menu pour l’action macro AddMenu , tapez le nom du menu (par exemple, « Formulaires de commandes »). Cet argument n’est pas obligatoire, mais il est recommandé si, à l’étape 3, vous envisagez d’ajouter le menu à un onglet du ruban (par exemple, l’onglet Compléments d’un formulaire ou d’un état). Si le menu est ajouté en tant que menu contextuel à l’étape 3, l’argument Nom du menu est ignoré.
- Dans la zone d’argument Nom de la macro de menu , entrez le nom de l’objet macro que vous avez créé à l’étape 1.
- Enregistrez et nommez ce deuxième objet macro, par exemple, mcrAddShortcutMenu.
L’illustration suivante montre un exemple d’objet macro de menu qui crée le menu conçu à l’étape 1.
Étape 3 : Attacher le menu à un contrôle, un formulaire, un état ou une base de données
En fonction de l’emplacement où vous souhaitez que le menu apparaisse, utilisez une ou plusieurs des procédures suivantes.
Ajouter le menu à l’onglet Add-Ins d’un formulaire ou d’un état
Suivez cette procédure si vous souhaitez que le menu s’affiche sous l’onglet Compléments pour un formulaire ou un état spécifique.
- Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire ou l’état où vous souhaitez que le menu apparaisse, puis cliquez sur Mode Création.
- Sous l’onglet Créer, dans le groupe Outils, cliquez sur Feuille de propriétés.
- Sélectionnez l’objet entier en sélectionnant Formulaire ou État dans la liste située en haut du volet Office Feuille de propriétés.
- Sous l’onglet Autre de la feuille de propriétés, dans la zone de propriétés de la barre de menus , tapez le nom de l’objet de macro créé à l’étape 2 (dans cet exemple, « mcrAddShortcutMenu »).
- Enregistrez les modifications apportées à votre formulaire ou rapport.
La prochaine fois que vous ouvrez le formulaire ou l’état, l’onglet Compléments s’affiche dans le ruban. Cliquez sur l’onglet pour afficher le menu, comme illustré dans l’illustration suivante :
Pour plus d’informations sur les techniques de personnalisation du ruban, telles que l’ajout d’onglets personnalisés ou le masquage des onglets par défaut, consultez l’article Créer un ruban personnalisé dans Access.
Ajouter le menu en tant que menu contextuel pour un formulaire, un état ou un contrôle
Utilisez cette procédure si vous souhaitez que le menu s’affiche lorsque vous cliquez avec le bouton droit sur un formulaire, un état ou un contrôle spécifique.
- Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire ou l’état où vous souhaitez afficher le menu contextuel, puis cliquez sur Mode Création.
- Sous l’onglet Créer, dans le groupe Outils, cliquez sur Feuille de propriétés.
- Sélectionnez le contrôle ou l’objet auquel vous souhaitez attacher le menu contextuel.
Pour sélectionner l’objet entier, sélectionnez Formulaire ou État dans la liste située en haut du volet Office Feuille de propriétés. - Sous l’onglet Autre de la feuille de propriétés, dans la zone de propriétés de la barre de menus contextuels , tapez le nom de l’objet de macro créé à l’étape 2 (dans cet exemple, « mcrAddShortcutMenu »).
- Assurez-vous que la propriété Menu contextuel est définie sur Oui.
- Enregistrez les modifications apportées à votre formulaire ou rapport.
La prochaine fois que vous ouvrez le formulaire ou l’état, puis cliquez avec le bouton droit sur le formulaire, l’état ou le contrôle, votre menu contextuel s’affiche avec les commandes associées, comme illustré dans l’illustration suivante :
Ajouter le menu en tant que menu contextuel global
Cette procédure remplace tous les menus contextuels par défaut dans la base de données active. Les menus raccourcis personnalisés que vous avez attachés à des formulaires, états ou contrôles spécifiques ne sont pas affectés.
- Cliquez surOptionsdes fichiers>.
- Dans la boîte de dialogue Options Access, cliquez sur Base de données active.
- Sous les options du ruban et de la barre d’outils, dans la zone Barre de menus contextuels , tapez le nom de la macro que vous avez créée à l’étape 2 (dans cet exemple, « mcrAddShortcutMenu »).
- Cliquez sur OK pour enregistrer vos modifications dans la boîte de dialogue Options Access .
- Fermez et rouvrez votre base de données pour que les modifications soient prises en compte.
Les menus de raccourcis personnalisés remplacent les menus de raccourcis par défaut pour les objets auxquels ils sont attachés. Si vous souhaitez conserver certaines commandes Access à utiliser dans ces menus, utilisez l’action macro RunCommand pour placer les commandes dans les objets macro des menus souhaités.
Un menu contextuel personnalisé joint à un contrôle remplace tout autre menu contextuel personnalisé défini dans la base de données. Un menu contextuel personnalisé joint à un formulaire ou à un état remplace un menu contextuel global personnalisé.
Lorsque vous spécifiez une macro de menu pour un formulaire, un état ou pour la base de données, Access exécute cette macro de menu chaque fois que le formulaire, l’état ou la base de données est ouvert. Si vous apportez des modifications à l’objet macro de menu ou à l’objet macro qui définit ses commandes lorsque le formulaire, l’état ou la base de données est ouvert, vous devez fermer le formulaire, l’état ou la base de données et le rouvrir pour voir les modifications.
Pour créer un sous-menu dans une liste de commandes de menu contextuel, suivez l’étape 1 pour créer un objet macro distinct qui contient uniquement les commandes de sous-menu, comme illustré dans l’illustration suivante :
Ensuite, suivez à nouveau l’étape 1 pour définir les commandes pour l’objet de menu de niveau supérieur. Ajoutez le sous-menu en tant qu’élément dans l’objet macro de niveau supérieur à l’aide de l’action macro AddMenu . L’illustration suivante montre l’objet macro d’un menu contenant un sous-menu. La troisième sous-macro de cet exemple d’objet macro crée le sous-menu Exporter vers... (mcrShortcutSubMenuCommands).
L’illustration suivante montre le menu contextuel terminé obtenu avec un sous-menu :
Vous pouvez créer plusieurs niveaux de sous-menus à l’aide des actions de macro AddMenu dans les objets macro de chaque niveau de menu. Veillez à fournir une valeur pour l’argument Nom du menu pour chaque action AddMenu , sinon le sous-menu apparaîtra sous la forme d’une ligne vide dans le menu de niveau supérieur.
Les conditions d’expression de macro utilisant des blocs Si/Alors/Sinon sont prises en charge dans l’objet macro de menu de niveau supérieur uniquement. En d’autres termes, vous pouvez utiliser une expression de condition dans un objet macro de menu pour déterminer si un menu particulier ou un menu contextuel s’affichera, mais uniquement pour les menus du niveau supérieur. Vous ne pouvez pas utiliser d’expressions de condition pour afficher ou masquer des commandes ou des sous-menus dans les menus. Vous pouvez également utiliser une expression de condition pour masquer ou afficher un menu contextuel personnalisé ou un menu contextuel global.
Si vous le souhaitez, la macro de menu que vous créez à l’étape 2 peut faire partie d’un objet macro. Par exemple, si vous avez plusieurs menus contextuels pour différents objets ou contrôles, vous pouvez créer un seul objet macro qui contient toutes les macros de menu nécessaires. Veillez à avoir un nom unique pour chaque sous-macro. À l’étape 3, utilisez la notation suivante pour faire référence à la macro : MacroObjectName.SubmacroName. Par exemple, mcrAddShortcutMenus.AddMenu2.
Haut de la page