Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/11/2011, 18h02   #1
Membre habitué
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 219
Détails du profil
Informations personnelles :
Nom : Homme Zeco
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 : 219
Points : 121
Points : 121
Envoyer un message via MSN à issoram
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 :
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
issoram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 20h57   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 905
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 905
Points : 7 199
Points : 7 199
Bonjour,

Comme cela, ça devrait fonctionner
Code :
If AddIns("Utils").IsOpen = False Then AddIns("Utils").Installed = True
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 09h20   #3
Membre habitué
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 219
Détails du profil
Informations personnelles :
Nom : Homme Zeco
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 : 219
Points : 121
Points : 121
Envoyer un message via MSN à issoram
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 :
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 :
mafonction(mes arguments)
Est ce qu'il faut préfixer avec un "Utils!" ou autre chose?

Cordialement.
issoram est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 10h10   #4
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 905
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 905
Points : 7 199
Points : 7 199
Il semblerait que cette propriété ait été ajouté sur excel 2010

comme cela ca fonctionne sur mon poste en excel 2003

Code :
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
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 11h21   #5
Membre habitué
 
Avatar de issoram
 
Homme Zeco
Développeur informatique
Inscription : janvier 2009
Messages : 219
Détails du profil
Informations personnelles :
Nom : Homme Zeco
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 : 219
Points : 121
Points : 121
Envoyer un message via MSN à issoram
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 :
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.
issoram est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h55.


 
 
 
 
Partenaires

Hébergement Web