Appel de macro

Jyhel

XLDnaute Nouveau
Bonjour à tous !

Actuellement en stage pour une SSII, je dois programmer sous Excel un macro permettent l'automatisation de reporting sous format powerpoint.

Mon problème est le suivant : afin d'actualiser les tableaux nécessaires, je dois faire appel à une macro existante située dans un classeur différent de celui sur lequel je travaille, et qui doit agir dans le classeur qui la contient.

Pour cela, après activation du classeur en question, j'utilise l'instruction :

Application.Run "nom_de_ma_macro"

Seulement, Excel réagit assez mal et me présente le message d'erreur :

"Erreur d'éxécution '1004' : (ce que j'ai pu en voir passer des erreurs 1004 en une semaine d'ailleurs :mad:)
Impossible d'éxécuter la macro 'ma_macro'. Il est est possible qu'elle ne soit pas disponible dans ce classeur ou que toutes les macros soient désactivées."

J'ai donc vérifié que ma macro était bien dans le classeur, simplement avec la fonction Afficher les macros puis en sélectionnant afficher les macros dans ce classeur.
Puis j'ai créé (comme proposé par mon ami Google) un certificat de sécurité, mais cela n'a pas arrangé les choses. Au moins ça n'a pas empiré ;)
Finalement, en désespoir de cause, j'ai fait ce truc absolument déconseillé qui consistait à cocher l'option activer toutes les macros dans l'onglet sécurité.

Et miracle...aucune amélioration.

Du coup, un peu désespéré (juste un peu hein :p), je me tourne vers vous qui avez déjà répondu à mes nombreuses questions sans le savoir.

Donc quelqu'un aurait-il une lumineuse idée pouvant me sortir de ce pas svp ?
Je le vénérerai jusqu'à la fin de mes jours. Ou au moins jusqu'à ce que je termine mon stage :p

Deux petites précisions supplémentaires :
- toutes mes autres instructions concernant le classeur ne contenant pas la macro (qui contient les instructions en question) fonctionnent
-vous l'aurez peut-être deviné, je suis encore débutant en VB (en fait j'ai commencé il y a une semaine en autodidacte)

En vous remerciant d'avance, et en espérant ne pas avoir rater un sujet identique existant,

Jyhel
 

Pierrot93

XLDnaute Barbatruc
Re : Appel de macro

Bonjour,

vérifie peut être que le nom de la procédure appelée ne soit pas précédé du mot "private", auquel cas elle ne peut être appelée par une procédure du même module.... Si c'est le cas enlève le mot "private"...

Bon après midi
@+
 

Jyhel

XLDnaute Nouveau
Re : Appel de macro

Re,

Déjà essayé, et même problème ^^
Le fait que tu me dises ça me fait me poser tout de même une autre question : lorsque tu as déjà activé le classeur où se situe la macro que tu appelles, tu dois tout de même utiliser cette syntaxe ?

Jyhel
 

Jyhel

XLDnaute Nouveau
Re : Appel de macro

Ouvrir dans un même instance, le problème doit venir de là alors.
M'enfin, possiblement.

J'ouvre simplement le classeur avec l'instruction :

Workbooks.Open ("adresse_du_classeur")

Que dois-je donc faire pour forcer excel à m'ouvrir mes classeurs dans la même instance stp ?
 

Pierrot93

XLDnaute Barbatruc
Re : Appel de macro

Bonsoir,

Excel déjà ouvert et barre de menu Excel => fichier => ouvrir, enfin ainsi sous 2003... Et avec "Workbooks.Open", logiquement doit s'ouvrir dans l'instance où cette instruction est lancée...

bonne soirée
@+
 

Jyhel

XLDnaute Nouveau
Re : Appel de macro

Bonjour,
Testé après une nuit de sommeil ;)
Worbooks.Open ouvre bien dans la même instance, un seul process excel lancé après vérification.
Dans le doute j'avais quand même ouvert le second classeur à la main dans la même instance, et modifié ma macro en conséquence. Même erreur.
S'il y a une autre idée, je suis preneur ;)
Merci encore,
Bonne journée,

Jyhel
 

Jyhel

XLDnaute Nouveau
Re : Appel de macro

Bonjour Michel, re Pierrot,

Oui, j'ai testé une version light de mon programme par l'enregistreur. C'est d'ailleurs ce dernier qui m'a appris une bonne partie de mon bagage d'instructions ^^
Sinon, je viens de tester avec un autre classeur, en refaisant tout à l'identique. Ce nouveau classeur contient 5 macros, 4 d'entre elles fonctionnent correctement, la 5ème me génère la même erreur que pour l'autre (j'ai bien vérifié qu'elle était publique).
Du coup j'ai aussi essayé toutes les macros du classeur "à l'origine de l'erreur", mais là, aucune ne fonctionne, et j'obtiens toujours la même erreur que précédemment.

Jyhel
 

Jyhel

XLDnaute Nouveau
Re : Appel de macro

Bonjour !

Bon, ben problème réglé.
De la manière la plus barbare qui soit, et qui consiste à copier les macros qui ne voulaient pas se lancer dans le classeur "de travail" et avec les modifs qui vont bien.
Et pour le classeur partiellement fonctionnel, après 4 changements de nom, et 3 déplacements de répertoire il est entièrement opérationnel.
Je refuse de chercher à comprendre, ça m'a déjà assez cassé les pieds comme ça ^^

Merci encore pour votre aide, et à bientôt,

Jyhel
 

Statistiques des forums

Discussions
314 485
Messages
2 110 101
Membres
110 663
dernier inscrit
ToussaintBug