IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Combiner plusieurs réferences vers .XLAM


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Actuaire
    Inscrit en
    Janvier 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Actuaire

    Informations forums :
    Inscription : Janvier 2019
    Messages : 1
    Par défaut Combiner plusieurs réferences vers .XLAM
    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?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Banedon Voir le message
    Bonjour,

    J'utilise en permanence des macros complémentaires. Pour des raisons de facilité de maintenance et de recherche d'erreurs, les procédures développées (et modules) dans chacune sont souvent identiques mais leurs noms sont distincts et font référence à leur .xlam de rattachement. Dans mon fonctionnement, deux macros complémentaires peuvent être présentes dans le menu des compléments, mais ne travaillent pas en même temps.

    Selon ce principe, vous ne devriez pas avoir de soucis avec vos variables globales déclarées dans vos .xlam.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    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.
    Comme tu n'en parles pas dans ta demande, as-tu modifié le nom du projet des xlam qui initialement est VBAProject car ne pas renommer un projet est un risque d'erreur.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Combiner plusieurs LEFT JOIN dans une requète
    Par feanor12 dans le forum Access
    Réponses: 3
    Dernier message: 24/08/2006, 13h39
  2. Réponses: 10
    Dernier message: 12/06/2006, 16h45
  3. Réponses: 4
    Dernier message: 14/09/2005, 16h29
  4. Réponses: 2
    Dernier message: 05/09/2005, 09h45
  5. Combiner plusieurs textures avec couches alpha
    Par TibobiT dans le forum OpenGL
    Réponses: 2
    Dernier message: 01/05/2004, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo