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 :

charger une macro complémentaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut charger une macro complémentaire
    Bonsoir,


    Plutôt que d'utiliser le à chaque appel d'une fonction ou procédure de ma macro, j'aimerais la charger une fois pour toute.

    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'On charge la macro complémentaire "Utils"
        If Application.AddIns("Utils").Installed = False Then
            Application.AddIns("Utils").Installed = True
        End If
    Cependant quand j'appelle une fonction ou procédure appartenant au fichier Utils.xlam, l'interpéteur me signale qu'elle n'est pas définie.

    Comment remédier à ce problème?

    Merci d'avance

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Comme cela, ça devrait fonctionner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If AddIns("Utils").IsOpen = False Then AddIns("Utils").Installed = True

  3. #3
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Merci, JFontaine mais la méthode isOpen ne fonctionne pas pour l'objet Addins (en tous cas pour ma version d'Excel (2007))

    En fait quand je lance une fonction le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AddIns("Utils").Installed
    est bien à TRUE.

    C'est peut être tout simplement dans la syntaxe de l'appel que je me trompe.
    Je fais juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mafonction(mes arguments)
    Est ce qu'il faut préfixer avec un "Utils!" ou autre chose?

    Cordialement.

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Il semblerait que cette propriété ait été ajouté sur excel 2010

    comme cela ca fonctionne sur mon poste en excel 2003

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim Myaddin As AddIn
     
    For Each Myaddin In Application.AddIns
        If Myaddin.Name = "Utils.xlam" Then
            Myaddin.Installed = True
        End If
    Next

  5. #5
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Le problème ne venait pas du chargement du fichier xlam mais bien de la syntaxe d'appel de la fonction.

    Je pensais qu'on pouvait se passer des Application.run en chargeant la macro complémentaire mais à priori non!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Application.AddIns("Utils").Installed = False Then
         Application.AddIns("Utils").Installed = True
    End If
    mafonction(arguments)  'mauvaise syntaxe 
    Application.run("mafonction",arguments)  'syntaxe correcte
    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AddIn] AutoUpdate d'une macro-complémentaire Add-In
    Par cafeine dans le forum Contribuez
    Réponses: 3
    Dernier message: 11/10/2023, 14h53
  2. Utiliser une macro complémentaire via un Command Button
    Par theshark85 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 19/11/2008, 15h02
  3. Menu dans une macro complémentaire
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/10/2008, 22h17
  4. [VBA Excel] Pb avec une macro complémentaire
    Par Nyck0las dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/11/2007, 22h19
  5. [VBA-E]-Appeler une macro complémentaire ?
    Par Régolo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/04/2007, 23h34

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