Si vous avez créé un complément pour contenir vos fonctions personnalisées Excel, vous avez peut-être découvert que, bien que les fonctions fonctionnent correctement dans une feuille de calcul Excel, vous ne pouvez pas les utiliser dans vos procédures VBA dans d’autres classeurs. C’est comme si Visual Basic Editor ne pouvait pas les _voir. Eh bien, c’est parce que ça ne peut pas! Cet article explique comment résoudre ce problème ._ Tout d’abord, demandez-vous si c’est vraiment ce que vous voulez faire.

Les compléments sont principalement destinés à ajouter des fonctionnalités supplémentaires à vos classeurs. Lorsque vous chargez un complément Excel, ses fonctionnalités deviennent immédiatement disponibles pour tous vos classeurs. Si vous créez une procédure VBA qui dépend d’une fonction personnalisée contenue dans un autre classeur, cet autre classeur doit être ouvert chaque fois que vous souhaitez utiliser sa fonction. Il en va de même pour une fonction personnalisée dans un complément. Si le complément est chargé, c’est bien, mais en supposant que vous envoyez votre classeur à quelqu’un d’autre ou que vous le distribuiez à votre groupe de travail. Vous devez également vous rappeler de distribuer le complément. Il peut être plus simple d’inclure une copie de la fonction dans le code du classeur afin que vos procédures y aient un accès direct (vous devrez peut-être en faire une Fonction privée ou modifier son nom pour éviter les conflits de noms).

Je ne dis pas de ne pas le faire. Vous devez juste y penser d’abord, et si vous êtes sûr que le complément sera disponible, allez-y. Voici comment …​

Quand le problème survient-il?

J’écris une procédure pour l’un de mes classeurs. Dans ma procédure, je souhaite utiliser la fonction RemoveSpaces que j’ai créée il y a quelque temps et enregistrée dans mon complément Martin’s Functions qui est actuellement installé dans ma copie d’Excel. Mais lorsque j’essaye d’exécuter ma procédure, j’obtiens une erreur.

L’éditeur Visual Basic se comporte comme si la fonction n’existait pas, mais je le sais et je peux le voir si je regarde le code à l’intérieur de mon complément. En fait, le code fonctionne correctement si je l’exécute à partir de mon complément.

J’ai besoin de Visual Basic Editor pour pouvoir voir les fonctions de mon complément à partir du module de code d’un classeur different.

Donnez à votre complément un nom de projet VBA Chaque classeur a un nom de projet VBA. Il s’appelle VBAProject. Vous pouvez changer ce nom si vous le souhaitez, mais normalement je ne me dérange pas, car normalement cela n’a pas d’importance.

Vous êtes-vous déjà demandé pourquoi tous les classeurs affichés dans le volet Project Explorer de l’éditeur Visual Basic sont appelés «VBAProject»? Si l’un des compléments Microsoft est installé, vous verrez qu’il porte un nom différent. Les développeurs Microsoft ont donné à leur complément Analysis ToolPak le nom de projet VBA « funcres ».

La première chose à faire est de donner à votre complément un nom de projet VBA unique.

C’est parce que vous allez y faire référence par ce nom à l’étape suivante et s’il y en a plusieurs avec le même nom, Visual Basic Editor ne saura pas lequel utiliser.

Dans le volet Project Explorer, sélectionnez le nom de votre complément. S’il n’est pas déjà ouvert, affichez la Properties Window de Visual Basic Editor. Vous verrez qu’il n’y a qu’une seule propriété, le Name. Tapez un autre nom et appuyez sur Entrée. Vous devrez respecter les règles de dénomination habituelles pour VBA (c’est-à-dire pas de caractères illégaux et pas d’espaces). Vous verrez que le nom est immédiatement appliqué dans Project Explorer.

Enregistrez maintenant les modifications apportées à votre complément. Assurez-vous que votre complément est sélectionné dans Project Explorer et choisissez Fichier> Enregistrer.

Définir une référence au complément Dans cette étape, vous indiquez au classeur dans lequel vous souhaitez utiliser les fonctions de votre complément que le complément existe. Pour ce faire, Définissez une référence au complément. Vous avez peut-être déjà rencontré cette technique si vous avez voulu écrire du code Excel pour communiquer avec un autre programme tel que Outlook ou Access.

Si cela vous convient, redémarrez Excel à ce stade. En effet, votre complément renommé sera rechargé et la liste que vous êtes sur le point de voir sera actualisée. Si ce n’est pas pratique, ne vous inquiétez pas …​ lisez le paragraphe suivant et décidez de ce que vous voulez faire.

Ouvrez un module de code dans le classeur dans lequel vous souhaitez utiliser les fonctions du complément puis allez dans Outils> Références pour ouvrir la boîte de dialogue Références où vous verrez une liste de toutes les bibliothèques et autres objets (comme les compléments) auxquels vous pouvez définir une référence. Si vous avez redémarré Excel, cette liste aura été actualisée et vous pourrez trouver le nom du projet que vous avez donné à votre complément à la dernière étape. Cochez la case à côté du nom et cliquez sur le bouton OK.

Si vous n’avez pas redémarré Excel, vous devrez trouver votre fichier de complément en cliquant sur le bouton Parcourir dans la boîte de dialogue Références. Cela ouvre la fenêtre Ajouter une référence. Modifiez la section Fichiers de type: en _Microsoft Excel Files (.xls; .xla) _ puis accédez au dossier dans lequel le complément est stocké.

Sélectionnez votre complément et cliquez sur Ouvrir. Cela ajoute votre complément à la liste où vous pouvez le sélectionner et cliquer sur OK.

REMARQUE: vous n’êtes pas obligé d’effectuer ces deux procédures! Choisissez l’un ou l’autre selon que vous avez redémarré Excel ou non après avoir modifié le nom du projet VBA de votre complément.

Vous pourrez maintenant utiliser les fonctions du complément dans n’importe quel module du classeur dans lequel vous définissez la référence et elles seront reconnues par Visual Basic Editor …​

Si vous regardez le Project Explorer, vous verrez qu’une référence a été appliquée au classeur …​

Il est important de se rappeler que l’ajout d’une référence s’applique uniquement au classeur pour lequel vous avez effectué cette procédure. Vous devrez le faire pour chaque classeur différent dans lequel vous souhaitez utiliser les fonctions de votre complément.

À propos de la distribution de vos fichiers Lorsque vous ajoutez une référence à un complément, ce lien vers le complément est « câblé » dans le fichier. Si vous déplacez le fichier vers un autre ordinateur ou si vous le distribuez à vos collègues, le classeur s’attendra à trouver le même complément, au même endroit, sur leurs ordinateurs. De plus, si le complément est déplacé ou supprimé de l’ordinateur, le classeur ne pourra pas le trouver et votre code ne fonctionnera pas.

Certaines personnes préconisent que le fichier et son complément associé doivent toujours être situés dans le même dossier pour éviter les problèmes que cela pourrait causer. Vous pouvez bien sûr définir à nouveau la référence pour résoudre le problème.

Tenez compte de ces facteurs et vous n’aurez aucun problème.