Affecter la bonne macro dans le bouton d'un nouveau document

Bonjour,

J'utilise actuellement un fichier Excel contenant des macros et permettant de générer des comptes-rendus, en fonction du magasin choisi.

Les comptes-rendus sont eux aussi des fichiers xlsm, car ils récupèrent un module depuis le fichier Excel de départ. Pour copier le module dans ce nouveau fichier j'utilise la fonction VBProject.VBComponents(Module).Export / Import, cela fonctionne correctement.

Je souhaite avoir un module dans le fichier "compte-rendu complet.xlsm" car on génère par la suite un fichier final "bilan allégé.xlsx" à partir de celui-ci, après que les utilisateurs aient apportés des modifications.

Pour résumer, j'ai 3 fichiers qui s'enchainent, et qui sont les suivants :

Fichier BDD.xlsm > compte-rendu complet n°XXXXX.xlsm > bilan allégé n°XXXXX.xlsx

Le problème, c'est que quand j'utilise le bouton présent dans le 2ème fichier "compte-rendu complet.xlsm" pour créer "bilan allégé.xlsx", cela fait appel systématiquement au module présent dans le 1er "fichier BDD.xlsm", alors que le module a justement été copié pour ne pas avoir besoin de faire de nouveau appel à ce premier fichier.

Cela oblige sinon les utilisateurs à changer systématiquement la macro affectée au bouton quand un fichier "compte-rendu complet.xlsm" est créé, ce qui n'est pas très pratique. Comment puis-je forcer ce bouton à utiliser le module qui a été copié dans ce nouveau document créé et non pas à faire appel à celui d'origine, présent dans le 1er fichier?

Merci par avance pour vos idées !

Bonjour Erlendur,

En ajoutant dans le code :

ActiveSheet.Shapes.Range(Array("Button 1")).Select 'Modifier le nom de la feuille et du bouton
Selection.OnAction = "Test" 'A modifier par le nom de la macro ou "'Nom du fichier.xlsm'!Test"

Cordialement,

Bonjour IronBoule,

Merci pour cette réponse rapide. Je viens de faire le test en intégrant la macro à mon code de départ (et en remplaçant les parties que tu as indiquées) mais pour le moment je me heurte à une erreur "l'élément portant ce nom est introuvable". Je vais faire davantage de tests et je reviendrais pour donner le résultat. Merci

Bonjour,

je procèderais autrement.

Crée le 2nd fichier vierge avec ses macros, totalement autonome, et enregistre-le en Modèle *.xltm.

Ton 1er fichier crée le 2nd à partir du modèle. Plus de macros à ajouter ni de liens bancals (bancaux ?) à essayer de rétablir.

En plus toute la mise en page sera prête si jamais tu t'embêtais à la faire par macro.

eric

Bonjour,

La formule donnée par IronBoule fonctionne correctement, merci pour l'aide rapide et efficace

Bon week-end !

Rechercher des sujets similaires à "affecter bonne macro bouton nouveau document"