Bonjour à tous(tes) en cette belle journée pleine de soleil !
Voilà ça fait un bon bout de temps que je cherche (peut-être mal dans ce cas j'espère que vous saurez m'indiquer des liens utiles) comment importer les macros d'un fichier pour en faire un usage direct.
Je m'explique !
J'ai des fichiers qui servent à faire des imports de données depuis une base. Ces fichiers sont très similaires mais néanmoins spécifiques (l'un récupère une information A, l'autre une information B mais ils ont la même macro de mise en forme par exemple).
Bref pour le moment chaque fichier possède sa propre copie de la macro "mise_en_forme" mais j'aimerais bien mettre cette macro dans un fichier "outils.xls" et pouvoir faire une sorte de "import outils.xls" dans les deux fichiers afin de pouvoir utiliser cette macro.
Pour le moment j'ai trouvé des trucs genre "Run.Application (outils.xls!mise_en_forme)" mais c'est un peu pénible de tout modifier (quoique je le ferais si il n'y a vraiment pas d'autre possibilité ^^) ou alors masquer le classeur "outils.xls" mais dans ce cas là je n'arrive pas à appeler les macros de outils.xls dans une macro d'un des deux fichier.
Donc, ma question : Existe-t-il une commande permettant d'importer les macros d'un autre classeur et de les utiliser comme si elles appartenaient à ce classeur ? Ou alors de créer une librairie ?
PS : en code ça donnerait quelquechose genre :
Code:
import outils.xls!module1
sub recup_data_from_serveur()
blahblah...
end sub
sub recup_données()
recup_data_from_serveur
mise_en_forme
end sub
PPS : Si ce n'est pas possible est-ce que je pourrais pas exporter tous les modules de "outils.xls", les sauvegarder quelque part puis les importer à chaque ouverture d'un de mes fichiers et les supprimer à la fermeture ?
c'est exactement ce que je cherchais au détail près que les fichiers excels sont partagés (disponibles en lecture sur un serveur) et donc que si j'enregistre dans le classeur personal je suis le seul à les avoir.
Cela dit c'est une bonne piste je vais voir si je peux pas creuser de ce coté et puis si j'y arrive pas je reviens ^^
Bon, en suivant ta piste du xlsb je suis tombé sur un forum où ils parlaient de XLA.
Et ça c'est pile poil ce que je cherchais
Pour ceux que ça intéresse :
Dans un fichier excel -> Enregistrer sous -> "macros.xla"
Dans l'éditeur de macros on met tout dans les modules de macros.xla
Dans les fichiers qui doivent exécuter les macros on va dans "outils macros complémentaires" pour excel 2003 et dans "Bouton office -> options excel -> compléments -> atteindre". Là on va chercher le .xla dans l'arborescence, on sauvegarde et ça marche.