Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Annette

XLDnaute Occasionnel
Bonjour le forum,

Dans le cadre de la finalisation d'un classeur, je souhaiterai savoir si cette chose-là est possible à effectuer, à savoir:

- J'ai un fichier A ouvert qui devrait avoir ses macros activées.
- J'ai un fichier B fermé qui renferme macros et données.

Je souhaite appeler une macro à partir du fichier A vers le fichier B pour que cette dernière (celle du fichier B) influe par le biais de 3 ou 4 processus dans le fichier B sur le fichier A 🙂.
Est-ce possible ?

Merci pour vos réponses.

Cordialement
 
Re : Macro externe

Bonjour MJ13,

GRRRRRRrrrrrr ... je m'en doutais un peu, alors dans ce cas est-il possible d'appeler à partir de mon fichier A ouvert une macro située dans mon fichier B fermé pour qu'elle s’exécute dans mon fichier A toujours ouvert ?

Alambiqué, n'est-ce pas ?

Merci pour votre réponse.

Cordialement
 
Re : Macro externe

Bonjour, Annette, Michel 😀, le Forum,

... est-il possible d'appeler à partir de mon fichier A ouvert une macro située dans mon fichier B fermé pour qu'elle s’exécute dans mon fichier A toujours ouvert...

Pourquoi ne pas placer la macro du fichier B dans les macros personnelles ?

Mais, peut-être n'ai pas bien saisi la difficulté.

A bientôt 🙂
 
Re : Macro externe

MJ13,

C'est une autre piste mais dans ce cas précis elle ne me conviens pas. Merci pour votre suggestion 🙂.
Sinon, avez-vous une idée concernant ma deuxième question en post3 ?

Merci pour vos réponses.

Cordialement
 
Re : Macro externe

Bonjour Annette

On ne peut pas lancer une macro sur un fichier fermé 😕.

Il vaudrait donc mieux ouvrir au départ tes 2 fichiers.

Si apparemment c'est possible en utlisant Application.Run (cf.explications ici).
Lorsque l'on appelle la macro placée dans le fichier fermé celui-ci s'ouvre et la macro est exécutée.
Charger les 2 fichiers exemple dans Documents, ouvrir Run_Classeur1 et lancer la macro.
A+
 

Pièces jointes

Dernière édition:
Re : Macro externe

Re, Bonjour David

Lorsque l'on appelle la macro placée dans le fichier fermé celui-ci s'ouvre et la macro est exécutée.

Ok, mais si on ouvre le fichier, celui-ci n'est pas fermé. C'est comme quand tu mets un raccourcis macro sur ta barre d'outils rapide. Mais sinon, cela conviendra peut-être à Annette en masquant le dit Ficihier B, ce qui est assez simple à faire 🙂.
 
Re : Macro externe

Bonjour David84,

Votre proposition répond presque à ma demande 🙂, donc si je comprends bien, la réponse à ma seconde question est négative ?
En tous cas, merci pour votre suggestion qui je pense mérite d'être creusée 🙂.
Par contre, pourriez-vous m'expliquer pourquoi les macros du classeur2 sont systématiquement activées lors de l'ouverture par le biais du classeur1 ?

Merci pour votre réponse.

Cordialement
 
Re : Macro externe

Votre proposition répond presque à ma demande , donc si je comprends bien, la réponse à ma seconde question est négative ?
Non puisque Application.Run ouvre le classeur. Tu n'as qu'à faire le test en plaçant dans le module de "classeur1"
Code:
Sub test()
Application.Run "Run_Classeur2.xls!Mon_test"
End Sub

Sub Ma_macro()
MsgBox "au revoir"
End Sub
et dans celui du classeur de "Run_Classeur2"
Code:
Sub Mon_test()
'MsgBox "bonjour"
Application.Run "Classeur1.xls!Ma_macro"
End Sub
et tu le constateras.

Par contre, pourriez-vous m'expliquer pourquoi les macros du classeur2 sont systématiquement activées lors de l'ouverture par le biais du classeur1 ?
Pas compris la question. Par contre j'ai l'impression que tu es en train de monter une usine à gaz alors qu'il y a peut-être plus simple à faire mais pour cela il nous faudrait savoir ce que tu cherches vraiment à faire et pourquoi.
A+
 
Re : Macro externe

Bonsoir David84, le forum,

Votre proposition ne correspond pas précisément à ma demande, à savoir:

Le fichier B est systématiquement ouvert lorsque l'appel est effectué à partir du fichier A. Le but de ma deuxième question était de savoir si il était possible d'appeler une macro située dans le fichier B fermé (qui le resterait) et d'agir sur le fichier A. Comme à priori ce n'est pas possible, je pense que je vais creuser votre suggestion .
Pour ma dernière question, mes macros sont par défaut désactivées, donc lorsque j'ouvre un fichier excel, j'ai un avertissement de sécurité. Il en est de même pour vos deux fichiers joints.
Donc:
- Lorsque j'ouvre Run_classeur1 seul, j'ai l'avertissement de sécurité
- Lorsque j'ouvre Run_classeur2 seul, j'ai l'avertissement de sécurité
- Lorsque j'ouvre Run_classeur1 et ensuite Run_classeur2, j'ai l'avertissement de sécurité
- Lorsque j'ouvre Run_classeur2 par le biais de la macro Run_classeur1, je n'ai pas d'avertissement sur le fichier Run_classeur2.

J'aurais souhaité comprendre pourquoi.

Cordialement
 
Re : Macro externe

david84,

Merci pour votre réponse.
Cela ne me paraissait pas aussi normal qu'à vous que les macros du fichier B soient automatiquement activées lorsqu'un appel d'une macro du fichier B était effectué à partir du fichier A. Mais soit, j'aurais appris une nouvelle chose ce soir 🙂

Merci à vous.

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
32
Affichages
982
  • Question Question
Microsoft 365 Power Query
Réponses
8
Affichages
231
  • Question Question
Microsoft 365 Bug sur une macro
Réponses
6
Affichages
348
Retour