Une macro unique pour plusieurs fichiers xlsx

Résolu/Fermé
Nicolas - 29 févr. 2016 à 21:56
Le Pingou Messages postés 12218 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 2 décembre 2024 - 2 mars 2016 à 10:57
Bonjour,
J'ai une dizaines de fichiers xlsx dont la feuille de données principale contient plusieurs milliers de lignes et une vingtaine de colonnes. Tous les fichiers ont le même intitulé de colonne. J'ai écrit une macro sur un des fichiers et je veux l'appliquer aux autres sans avoir à recopier la macro dans tous les fichiers. Je vois en lisant les forums qu'on peut sauvegarder le fichier .xlsm en un fichier .xla. Du coup, Excel propose par défaut le répertoire \\AppData\Roaming\microsoft\AddIns. Ensuite, dans options Excel, Compléments, Compléments Excel, Atteindre, je coche la boîte à cocher correspondant à ma macro, je sors d' Excel, je le redémarre et impossible de voir apparaître ma macro qui est censée être dans l'onglet "Données", pavé "Analysis" avec le Data Analysis et le solver. En faisant Alt F11, je vois bien la macro, je peux toujours l'exécuter en cliquant sur "Module 1" puis en cliquant sur la petite flèche verte (Exécuter Sub (F5)) mais n'y a-t-il pas une méthode plus ergonomique? En tapant le nom de la macro dans le bandeau prévu à cet effet sur la fenêtre Alt F8, le bouton "Exécuter" reste gris. Je vous remercie de votre aide.
Nicolas


A voir également:

4 réponses

Le Pingou Messages postés 12218 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 2 décembre 2024 1 452
1 mars 2016 à 16:25
Bonjour,
Une solution est de mettre un bouton de commande sur la feuille de votre choix et de lui affecter la macro.

0
Bonsoir Le Pingou, merci de votre réponse. J'ai donc installé le "commandbutton1" sur la page de mon choix des fichiers à traiter par la macro enregistrée en .xla. Ensuite j'ai fait un call main de mon programme dans le Private Sub CommandButton1_Click(). "main" est le nom du programme de la macro .xla. La compilation me dit que main est introuvable. Comment lui faire comprendre alors que le programme main se trouve dans un autre VBA project (celui de la .xla qu'on voit parfaitement par alt F11)? Merci encore. Nicolas
0
Le Pingou Messages postés 12218 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 2 décembre 2024 1 452
1 mars 2016 à 23:03
Bonjour,
Je ne sais pas exactement ce que vous avez réalisé.
Je vous propose de regarder comment fonctionne l’exemple joint, Vous devez extraire le dossier global (il y a les classeurs nécessaire pour l’exemple) et l’enregistrer sur votre bureau.
L’exemple : https://www.cjoint.com/c/FCbwbXi66gs
Vous ouvrez [Global] et ensuite le classeur [JPP_Accuil.xlsm] …. !
A voir pour la suite ….selon vos informations

0
Le Pingou Messages postés 12218 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 2 décembre 2024 1 452
2 mars 2016 à 08:59
Bonjour,
En relisant votre demande, je constate que j’ai mal répondu, veillez m’en excuser.

Pour pouvoir exécuter une macro d'un autre classeur (ici .xla), il est nécessaire que ce dernier soit ouvert au préalable.

Soit comme cela pour fichier xla ( mesMacro.xla)
Private Sub Workbook_Open()
Application.Workbooks.Open "C:\Documents and Settings\users\Application Data\Microsoft\AddIns\mesMacro.xla "
Application.Run "mesMacro.xla!NomDeLaMacro"
End Sub

0
Bonjour Le Pingou, vous êtes trop fort : ça marche!
Merci beaucoup pour votre aide.
Cordialement,
Nicolas.
0
Le Pingou Messages postés 12218 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 2 décembre 2024 1 452
2 mars 2016 à 10:57
Bonjour,
Merci, de rien, content pour vous.
0