Bonjour à tous,
Je me permets de poster ici cette question à laquelle je n'ai pas trouvé de réponse compréhensible (pour moi en tout cas...) en parcourant ce forum ou d'autres dédiés à Excel.
Voici la situation :
J'utilise dans mon métier une application qui crée des rapports au format ODS. Je n'ai pas la main sur cette application et ne peux donc pas enregistrer une macro dans ces classeurs.
Ces rapports doivent être convertis au format XLS avant d'être transmis aux clients.
J'ai donc réalisé une macro qui
- vérifie que le fichier ouvert est bien un rapport au format ODS, et quitte sinon.
- puis enregistre au format XLS le fichier en question au même endroit
- supprime enfin le fichier ODS d'origine si l'opération précédente a réussi
Bref, cette macro fonctionne, elle est enregistrée dans "%APPDATA%\Microsoft\Excel\XLSTART\PERSONNAL.XLSB" et est appelée par un raccourci clavier.
Ainsi, lorsque j'ouvre un rapport au format ODS, le classeur PERSONNAL.XLSB s'ouvre à l'arrière plan et quand j'appuie sur le raccourci clavier et le fichier ODS est "converti" en XLS.
Ce que je voudrais changer :
Je souhaiterais que cette macro soit exécutée à l'ouverture de n'importe quel classeur sans avoir à taper le raccourci clavier.
Ce que j'ai déjà esssayé :
1°) Créer une macro Auto_open dans PERSONNAL.XLSB qui appelle simplement cette macro
2°) Renommer ma macro en Auto_open
Dans les deux cas ci-dessus, à l'ouverture de mon document ODS, le PERSONNAL.XLSB s'ouvre en arrière plan et la macro est exécutée SUR LE CLASSEUR PERSONNAL.XLSB, ce qui me renvoie bien sûr le message prévu en cas d'exécution sur un classeur autre qu'un rapport au format ODS ("ce fichier n'est pas un rapport, abandon de la macro") Le classeur ODS est ensuite ouvert, mais la macro ne lui est pas appliquée.
Donc ma question finale est :
Comment faire pour que cette macro ne se lance pas à l'ouverture de PERSONNAL.XLSB mais à l'ouverture de tout autre classeur ? Même si plusieurs classeurs sont ouverts à la suite dans une même instance Excel ?
Ou à défaut comment faire pour que cette macro se lance à l'ouverture de tout classeur, PERSONNAL.XLSB compris (auquel cas je désactive le message) ?
D'avance merci pour vos lumières...
Je me permets de poster ici cette question à laquelle je n'ai pas trouvé de réponse compréhensible (pour moi en tout cas...) en parcourant ce forum ou d'autres dédiés à Excel.
Voici la situation :
J'utilise dans mon métier une application qui crée des rapports au format ODS. Je n'ai pas la main sur cette application et ne peux donc pas enregistrer une macro dans ces classeurs.
Ces rapports doivent être convertis au format XLS avant d'être transmis aux clients.
J'ai donc réalisé une macro qui
- vérifie que le fichier ouvert est bien un rapport au format ODS, et quitte sinon.
- puis enregistre au format XLS le fichier en question au même endroit
- supprime enfin le fichier ODS d'origine si l'opération précédente a réussi
Bref, cette macro fonctionne, elle est enregistrée dans "%APPDATA%\Microsoft\Excel\XLSTART\PERSONNAL.XLSB" et est appelée par un raccourci clavier.
Ainsi, lorsque j'ouvre un rapport au format ODS, le classeur PERSONNAL.XLSB s'ouvre à l'arrière plan et quand j'appuie sur le raccourci clavier et le fichier ODS est "converti" en XLS.
Ce que je voudrais changer :
Je souhaiterais que cette macro soit exécutée à l'ouverture de n'importe quel classeur sans avoir à taper le raccourci clavier.
Ce que j'ai déjà esssayé :
1°) Créer une macro Auto_open dans PERSONNAL.XLSB qui appelle simplement cette macro
2°) Renommer ma macro en Auto_open
Dans les deux cas ci-dessus, à l'ouverture de mon document ODS, le PERSONNAL.XLSB s'ouvre en arrière plan et la macro est exécutée SUR LE CLASSEUR PERSONNAL.XLSB, ce qui me renvoie bien sûr le message prévu en cas d'exécution sur un classeur autre qu'un rapport au format ODS ("ce fichier n'est pas un rapport, abandon de la macro") Le classeur ODS est ensuite ouvert, mais la macro ne lui est pas appliquée.
Donc ma question finale est :
Comment faire pour que cette macro ne se lance pas à l'ouverture de PERSONNAL.XLSB mais à l'ouverture de tout autre classeur ? Même si plusieurs classeurs sont ouverts à la suite dans une même instance Excel ?
Ou à défaut comment faire pour que cette macro se lance à l'ouverture de tout classeur, PERSONNAL.XLSB compris (auquel cas je désactive le message) ?
D'avance merci pour vos lumières...
Dernière édition: