Lancement d'une macro à l'ouverture d'une feuille Calc

Bonjour,
Sur LibreOffice V24.2, sous Linux Mint 22.1, je ne parviens pas à faire lancer une macro Basic à l’ouverture de mon fichier .ods.
J’ai enregistré cette macro dans /Modules/Module1 de ma feuille de calcul, cette macro fonctionne quand je lance l’exécution à partir de l’éditeur Basic.
Je cherche à assigner cette macro à l’évènement [Ouvrir le document] uniquement pour cette feuille de calcul. Je rencontre 2 problèmes :

  • l’option “Enregistrer dans” propose uniquement LibreOffice et pas ma feuille de calcul pourtant ouverte dans Calc,
  • le sélecteur de macro propose uniquement les bibliothèques Mes macros et Macros de l’application et pas ma feuille de calcul.

J’avais initialement enregistré cette macro dans la bibliothèque Mes macros, mais elle était lancée à l’ouverture de tous les documents LibreOffice .odt, .odg, ods … alors que je veux limiter à une seule feuille de calcul.

Merci de votre aide

Bonjour et bienvenue @Zardoz45 ,

essayez d’associer la macro à l’événement Vue créée. Je n’ai pas obtenu non plus le déclenchement de la macro par aucun des deux événements Chargement du document terminé et Ouvrir le document.

À noter que Vue créée se déclenche aussi lors d’une demande d’aperçu, ce qui peut avoir des effets indésirables, selon ce que fait la macro.

Bonjour,

oups, je n’y ai pas pensé. Merci pour l’info.

Je n’arrivais pas à formaliser le processus. Je me disais qu’une macro incluse dans un document ne pouvait pas “détecter” l’ouverture de son propre conteneur. Est-ce le cas ?

Non, les bibliothèques (autres que Standard) doivent être chargées explicitement.

De fait, pour que ce chargement ait lieu, il faut que, dans Standard, on ait une macro qui réalise ce chargement (ex : dans Standard/Module1/Main) .
Par conséquent, cette pratique (avoir d’autres bibliothèques que Standard, que ce soit dans un document ou dans Mes Macros) est à utiliser dans des cas bien spécifiques (ex : Mes Macros/Tools).

Bonjour à tous,
Est-ce que cette règle concernant les bibliothèques est décrite dans la documentation sur libreoffice.org ?
Après ces échanges, je vois comment avancer sur la solution à mon besoin …
J’aurai sans doute d’autres questions, je publierai aussi mes conclusions
Merci

Lisez le document suivant :

La réponse à votre question est dans le dernier paragraphe en bas de la page 16.

Notez qu’il y a un conseil (quelques lignes au-dessus, dans la même page) qu’il faut prendre avec des pincettes, à mon avis :

Chaque conteneur de bibliothèques contient une bibliothèque nommée Standard. Il est préférable
de créer vos propres bibliothèques et de leur donner des noms significatifs, plutôt que d’utiliser la
bibliothèque Standard. Non seulement les noms significatifs sont plus faciles à utiliser, mais ils
peuvent également être importés dans d’autres conteneurs de bibliothèques, alors que ce n’est
pas possible avec la bibliothèque Standard.

puisqu’il pousse à créer des macros dans d’autres bibliothèques que Standard. Le conseil me paraît utile mais devrait indiquer qu’il faut savoir ce qu’on fait :slight_smile:

1 Like

Bizarre… Vous êtes sûr ? Ce ne serait pas Standard/Module1 ?

Si vous avez réellement vos macros dans une bibliothèque Modules, alors, il faut la charger au démarrage (ouverture du document). Seule la bibliothèque Standard est chargée automatiquement.
Je vous conseillerais par conséquent de déplacer vos macros dans Standard/Module1.