Bonjour,

J'ai créé deux '.xlam' contenant des fonctions/macros que je souhaites utiliser dans un '.xlsb'. Je peux sans problème créer la référence vers les deux '.xlam' et appeller les macros/fonctions de chacun des deux packages depuis le projet du '.xlsb'. Malheureusement, lorsque le second '.xlam' fait référence aux macros/fonctions du premier, VBA plante et m'annonce qu'elles n'existent pas.

J'arrive à passer outre le problème en créant la référence vers le premier .xlam directement à l'intérieur du project du second .xlam. De cette façon, VBA reconnait l'existence de ces macros/fonctions tant que les appels se trouvent dans le second .xlam. Cependant, ces macro/fonctions ne sont alors plus directement disponibles dans le projet VBA du .xlsb.

Je pense qu'en créant (à l'intérieur du second .xlam) des doublons de chaque macro/fonction que je veux passer au .xlsb, j'arriverai à les appeller depuis ce dernier. Cependant, je trouve cette méthode peu élégante.

Je ne suis pas très à l'aise avec les références et add-ins en tout genre. Je préfères fonctionner avec des références à l'intérieur des fichiers plutôt qu'avec des add-ins car je ne veux pas que le fonctionnement de mes packages dépendent trop de l'utilisateur (et du fait qu'il rajoute les add-ins ou pas dans son Excel).

Est-ce que quelqu'un connait un moyen simple de faire en sorte que lorsqu'on rajoute des références vers deux xlam, on puisse accéder aux macros/fonctions de l'un vers l'autre de façon (quasi) aussi transparente que si on se contentait de copier/coller le code des deux packages directement dans le projet du xlsb qui y fait référence ?

Merci d'avance


PS: J'ai aussi un problème lorsque les .xlam font référence à des variables globales définies dans le .xslb. Ces variables ne sont tout simplement pas disponibles depuis le .xlam. Je pense que j'ai surestimé le principe des références en imaginant que cela reviendrait à copier/coller le code d'un xlam dans mon projet xslb alors qu'en réalité les variables/macros/fonctions ont un scope beaucoup plus limité. Peut-être existe-t-il un moyen de rendre plus globaux certains éléments pour les rendre accessibles d'un projet à l'autre?