Forum Programmation.autre utilisation des macros de LibreOffice

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
3
11
nov.
2025

Des personnes parmi vous ont-elles déjà essayé l'enregistrement des macros dans LibreOffice ?

objectif d'utilisation des macros de LibreOffice

L'objectif (initial, évoluera en fonction de ce qui est réalisable) serait d'adapter ensuite l'enregistrement pour réaliser ceci :

  1. dans un premier temps, générer un graphique automatiquement dans calc à partir d'un fichier CSV (liste temporelle de températures)
  2. dans un deuxième temps d'intégrer de bout en bout ce graphique à partir d'une liste dans un document texte avec placement d'une légende, intégration à la liste des illustrations
  3. utilisation (avancée) de LibreOffice Uno pour générer le document formaté automatiquement, au besoin par utilisation d'une API de récupération de la liste des données

J'ai choisi l'entrée de forum, car cela me permet de mettre à jour les références1 qui me seront fournies dans vos commentaires ;-)

ce que j'ai déjà fait

Forcément, j'ai déjà lu la documentation (peu diserte) d'enregistrement des macros2 de LibreOffice : premier étonnement, on ne peut enregistrer qu'en Basic (moi qui croyait que Python ou Rust serait possible :/). Dont acte. Bon en plus, l'option est cachée par défaut, ce que je puis comprendre — il faut activer enregistrement des macros dans le Menu Outils / Options / LibreOffice / Avancé / Fonctionnalités optionnelles : Activer l'enregistreur de macro (peut être limité) — et ensuite c'est un peu cryptique ;-)

Je n'en suis qu'au début, il me reste à préciser des cas et trouver un peu plus de références. Déjà, j'ai une liste de guides3 à potasser.

Oui, avec un script shell et gnuplot ça se fait aussi (je l'ai déjà fait, là l'idée c'est d'utiliser LibreOffice de bout en bout).

données de référence

autant partir sur un fichier CSV de ma station météo température/humidité.

date mesure intérieur      extérieur      couloir     chambre     commentaire
20250711 17h20  23,7    24,3    21,8    22,4                    soleil jusque 14h30 sur balcon (monté à 27°C), franchement plus agréable que les 28 de Versailles : ya de l'air au moins (et la mer en face \o/)
20240731 14h30  25,4    65  26,8    75                  
20240726 23h00  21,1    64  18,7    74                  
20240801 9h18   24,1    63  23,5    68  22,5    72  23,2    69  couloir à isoler, toujours un peu plus frais et plus humide
20240801 11h00  25,5    63  27,1    61  23,1    73  23,2    69  couloir à isoler, toujours un peu plus frais et plus humide
20240803 13h30  23,7    65  22  75  22,8    66  23,2    63  bah, la pluie ça rafraichit
20240806 9h30   22,9    71  21,3    82  22,1    71  22,6    65  prévision soleil 10h nuageux autrement, potentiellement pluie 11h-13h, peut-être soleil 20h-21h


Références


  1. les différentes références que j'ai pu trouver ou qui m'ont été suggérées 

  2. docs sur les macros LibO v25.8 peu disert, manque des références pour aller plus loin ;-) 

  3. Pour les macros, il y a un chapitre 12 dédié dans le guide Calc — PDF, 29 pages pour automatiser tâches répétitives. Voir aussi l'antisèche Basic. Tout ça était recensé sur le wiki de TDF jusque v6.4 et 7 — c'est déjà une base de l'existant (voir les actualisations). 

  • # J'ai essayé et puis...

    Posté par  . Évalué à 1 (+0/-0).

    et puis j'ai converti le fichier en xlx et j'ai utilisé du python avec openpyxl

  • # Vraiment besoin de macros pour ça ?

    Posté par  . Évalué à 6 (+4/-0).

    Il me semble qu'avec des fichiers liés tu pourrais faire ça sans macro.
    Le fichier CSV est importé / lié dans un feuille de tableur, dans une autre feuille on extrait et met en forme les données qu'on veut représenter et dans une 3e on construit le graphique qui va bien.
    Dans le doc Writer on importe avec liaison le graphique à partir du tableur.

    Concernant l'enregistrement d'une macro : il s'agit d'enregistrer (au sens d'un magnétophone) une suite d'actions dans l'interface de LibreOffice pour produire une macro. Évidemment, cette suite d'actions est décrite par des commandes Basic qui est le langage de macro de LibreOffice. Si tu veux faire la même chose en Python, il faut traduire ou repenser le truc en utilisant l'API de LibreOffice.

    Pour les macros, il y a un chapitre dédié dans le guide Calc. Voir aussi l'antisèche Basic. Tout ça sur le wiki : https://wiki.documentfoundation.org/FR/Documentation/Publications

    • [^] # Re: Vraiment besoin de macros pour ça ?

      Posté par  (site web personnel) . Évalué à 2 (+0/-0). Dernière modification le 12 novembre 2025 à 14:50.

      Il me semble qu'avec des fichiers liés tu pourrais faire ça sans macro.

      oui, c'est comme en Perl : TIMTOWTDI mais ce n'est pas la manière retenue pour l'exemple, un objectif secondaire étant de s'y retrouver dans la doc' disponible (et, éventuellement, d'y proposer des améliorations).
      Il sera temps ensuite de trouver des exemples plus élaborés ;-) Là l'exemple fourni est réalisable (partiellement) avec gnuplot mais ça ne montrerait pas les interactions entre Calc / Writer et l'utilisation des macros, ce qui peut être réutilisé pour d'autres cas :D

      ta doc' sur le wiki ne va que jusque la v6.4 ? (elle a été mise à jour en 2022 la dernière fois…). Je suis en 25.8 sur Mageia Cauldron ;-)
      Pourtant, il y a eu des mises à jour majeurs des docs d'après https://libre-office.fr/article.php/documentation-libreoffice-en-2025---nouveautes-et-ameliorations-majeures ? (qui n'a pas l'air d'être un site géré par TDF…)

      Note : Sur l'aide de LibreOffice v25.8 que j'ai utilisée, il y a une erreur de traductions s/les mots de passe Basic en tant que nom/les mots-clés Basic en tant que nom/ => mauvaise traduction de keyword je pense, ça se suggère où ?

      • [^] # Re: Vraiment besoin de macros pour ça ?

        Posté par  . Évalué à 3 (+1/-0).

        Ok, si l'objectif est de jouer avec les macros ;-)

        Concernant le site mentionné, il n'est pas géré par TDF. Il est même signalé par l'extension Next de détection des sites GenAI. Donc méfiance.

        À ma connaissance il n'y a pas eu de modification en profondeur sur les macros dans les dernières versions. S'il y en a eu elles devraient avoir été signalées dans les notes de version.

        Je viens de corriger l'erreur de traduction que tu as signalée. Merci :-) Elle devrait être reprise sur le site web prochainement et dans l'aide intégrée lors de la prochaine release.

        • [^] # Re: Vraiment besoin de macros pour ça ?

          Posté par  (site web personnel) . Évalué à 2 (+0/-0).

          S'il y en a eu elles devraient avoir été signalées dans les notes de version.

          tu as une mise à jour de ta page wiki avec les dernières versions de doc' listées ?

          Je viens de corriger l'erreur de traduction que tu as signalée.

          ce n'était pas ma question ;-) j'aime bien voir sous le capot et suivre de bout en bout une modif', tu ne vas pas me donner du poisson à chaque fois que je veux manger, apprends-moi plutôt à pêcher :p

  • # macro = danger

    Posté par  . Évalué à 0 (+1/-2).

    Les macros c'est un truc à éviter pour la cybersécurité. Dans de nombreuses entreprises elles sont tout simplement désactivées pour éviter les injections de codes malveillants.
    Si on fait ça pour soit ok, mais on ne peut pas partager ce type de document avec d'autres…

    J'opterais plutôt pour un Jupyter Notebook :
    python : modules panda pour le csv et matplotlib pour les graphiques
    markdown pour les commentaires

    En plus c'est beaucoup plus agréable à regarder et prêt pour la publication web.

    • [^] # Re: macro = danger

      Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

      Ça dépend du type de macro. Les macros qui ne sont qu'un enregistrement d'une séquence d'opérations sans éléments extérieurs au logiciel ne posent pas de problème de sécurité particulier. Les autres, effectivement, ça peut se discuter. Et celles de vieux fichiers datant de Mathusalem peuvent poser problème (et s'avérer parfaitement dispensables).

      Cela dit, j'ai souvent constaté qu'on avait tendance à vouloir faire des macros soit par méconnaissance des capacités du logiciel soit parce que la feuille de calcul (terrain privilégié des faiseurs et faiseuses de macros) a été mal conçue. Dans ce cas la macro compense la mauvaise conception (et, à mon avis refaire le travail proprement est une meilleure solution).

      Je n’ai aucun avis sur systemd

  • # Liens externes

    Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

    Je comprends bien que tu veux faire mumuse avec les macros:-).

    Personnellement pour récupérer les données météo du site infoclimat j’utilise la fonctionnalité Liens externes : Feuille > Liens externes. Et je récupère la table kivabien. Mais comme la mise en forme et l’organisation du contenu ne me va pas (il y a une notion de décade, les températures mini et max sont dans la même colonne). Je commence par virer les lignes qui me dérangent dans Calc (à la mano, je n’ai pas trouvé comment automatiser) et j’ai une petite macro gentillette qui récupère ce dont j’ai besoin et le copie. Ensuite je copie ça dans un « fichier pivot » Writer, j’ai une petite macro gentillette pour le ménage et la réorganisation du tableau et je copie le résultat dans la feuille finale.

    Pour le graphique :

    1. tu crées ton graphique dans la feuille des données,
    2. tu le copies dans une autre feuille pour n’avoir que ça et en haut et gauche de la feuille, tu peux virer le premier, il ne te sert plus à rien,
    3. tu l’insères en tant qu’objet OLE et tu le crées à partir d’un fichier, donc celui qui a le graphique sans oublier de Lier au fichier. Ça se met à jour ensuite.

    Astuce : pour que ton graphique garde les bonnes dimensions, tu l’édites, puis, clic-droit Position et taille et tu protèges la position et la taille.

    Mes macros ne sont que des enregistrements d’opérations : sélection, rechercher-remplacer, etc. Rien de bien compliqué et les fichiers ont des liens les uns vers les autres. On peut sans doute faire mieux. Personnellement, je n’ai pas de graphique sur le fichier pivot.

    Je n’ai aucun avis sur systemd

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.