Utilisation de l’appel pour exécuter des macros VBA (Microsoft Word)
Bien qu’il soit possible d’exécuter une macro VBA à partir d’une autre macro en utilisant l’approche présentée dans le conseil précédent, il arrive qu’une telle approche ne fasse tout simplement pas le travail. Au lieu de cela, vous devez rechercher une solution qui autorise une méthode sans échec d’exécution d’une macro. Une approche consiste à utiliser la commande Call dans VBA. Cependant, avant de pouvoir utiliser la commande, vous devez ajouter une référence de projet au projet appelant. (Les projets sont la façon dont VBA fait référence à la collection de modules VBA, de formulaires, etc. dans un modèle. Par exemple, VBA fait référence au modèle Normal.dot en tant que projet « Normal ».) Les références entre projets fournissent un lien défini sans ambiguïté entre un projet appelant et le projet à appeler.
Par exemple, disons que la macro MyMacro (celle que vous vouliez exécuter) faisait partie du modèle CoolDoc. Pour utiliser correctement Call dans VBA, vous devez ajouter une référence au projet CoolDoc.dot à la macro qui appellera MyMacro. Malheureusement, c’est un peu plus facile à dire qu’à faire à cause d’un potentiel « gottcha » dans VBA: Autre que le « Normal »
projet, VBA donne à tous les projets de modèle créés par l’utilisateur le nom de projet par défaut «TemplateProject». Cela peut créer des problèmes car il est préférable d’avoir un nom de projet unique lorsque vous souhaitez être précis sur la macro à exécuter. Pour donner à CoolDoc.dot un nom de projet unique, procédez comme suit:
-
Assurez-vous que le modèle CoolDoc.dot est ouvert.
-
Affichez l’éditeur VBA en appuyant sur Alt + F11.
-
Dans la fenêtre Projet en haut à gauche de l’éditeur VBA, cliquez avec le bouton droit sur le dossier du modèle. Le dossier sera nommé soit Project (CoolDoc). Word affiche un menu contextuel.
-
Choisissez l’option Propriétés du projet dans le menu contextuel. La boîte de dialogue Propriétés s’affiche.
-
Dans le champ Nom du projet, entrez un nom approprié pour votre projet.
(CoolDoc serait un bon nom, tant qu’il est unique.)
-
Cliquez sur OK. La boîte de dialogue disparaît et le projet est renommé CoolDoc.
Si vous développez tous les objets sous CoolDoc, vous devriez voir un module ou deux dans le projet. (Rappelez-vous; les macros VBA sont contenues dans des modules.) Pour les besoins de cette discussion, supposons que MyMacro (celui que vous voulez exécuter) est contenu dans le module HotStuff du projet CoolDoc.
(Tous ces noms d’objets seront utilisés sous peu. À ce stade, il vous suffit de noter les noms utilisés pour votre projet et le module avec la macro.)
Vous êtes maintenant prêt à ajouter réellement la référence de projet CoolDoc au projet à partir duquel la macro sera appelée. Dans ce cas, supposons que vous l’appelez à partir d’une macro dans le projet Normal. Vous pouvez ajouter la référence en suivant ces étapes (en supposant que l’éditeur VBA est toujours ouvert):
-
Dans la fenêtre Projet en haut à gauche de l’éditeur VBA, sélectionnez le dossier Normal.
-
Choisissez Références dans le menu Outils. La boîte de dialogue Références s’affiche. (Voir la figure 1.)
-
Dans la liste des références disponibles, recherchez CoolDoc.
-
Assurez-vous que la case à cocher à gauche de l’option CoolDoc est sélectionnée.
-
Cliquez sur OK.
Enfin, vous êtes prêt à ajouter l’instruction Call à la macro à partir de laquelle vous souhaitez appeler MyMacro. La ligne de commande apparaîtrait comme suit:
Call CoolDoc.HotStuff.MyMacro
Cette ligne de commande oblige VBA à exécuter la macro souhaitée, sans aucune possibilité d’ambiguïté. Il y a cependant quelque chose d’important à noter.
Si vous placez une référence au projet CoolDoc en mode Normal, le chargement normal est une copie de CoolDoc à chaque démarrage de Word, même s’il n’y a aucun document ouvert basé sur le modèle CoolDoc.dot.
Ce chargement de CoolDoc soulève une question évidente: quel est l’intérêt, en VBA, de mettre MyMacro dans CoolDoc.dot car cela ne fera pas gagner du temps de chargement ou de l’utilisation des ressources? La réponse courte est qu’il n’y a aucun point, à part CoolDoc.dot qui n’est peut-être pas un endroit plus évident pour mettre du code qui ne concerne que des choses dans CoolDoc.dot. (Tout ce sujet de la conception de projet sensée est un sujet beaucoup trop vaste pour être discuté dans cette seule astuce.)
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
WordTips est votre source pour une formation Microsoft Word rentable.
(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (86) s’applique à Microsoft Word 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban de Word (Word 2007 et plus tard) ici:
link: / wordribbon-Using_Call_to_Run_VBA_Macros [Utilisation d’un appel pour exécuter des macros VBA]
.