Formation LibreOffice Calc - Macros et automatisation Basic
Formation avancée à l'automatisation de LibreOffice Calc via LibreOffice Basic : enregistreur de macros, IDE Basic, manipulation de feuilles et de cellules, boîtes de dialogue, interconnexion avec les autres composants (Writer, Base) et interopérabilité avec Excel VBA. Programme aligné sur la documentation officielle The Document Foundation (Basic Guide 26.2).
Fondamentaux LibreOffice Basic
Objectif operationnel : Maîtriser l'environnement de développement Basic et écrire des macros simples et propres.
Contenu :
- Enregistrement d'une macro (Outils > Macros > Enregistrer une macro) — activation préalable, périmètre, limites
- Ouvrir l'IDE LibreOffice Basic (Outils > Macros > Éditer les macros) : arborescence Bibliothèque > Module > Sub / Function
- Hiérarchie : Mes macros (utilisateur) / Macros LibreOffice (système) / macros dans le document — portée et bonnes pratiques
- Structure d'une procédure : Sub / End Sub, Function / End Function, arguments, valeur de retour
- Types de données : Integer, Long, Double, String, Boolean, Date, Variant — déclaration Dim, portée locale/globale
- Variables, constantes, opérateurs, expressions — commentaires (') et documentation
- Structures de contrôle : If...Then...Else, Select Case, boucles For, Do While, Do Until, Exit
- Gestion d'erreur : On Error GoTo, Err.Number, Err.Description — pièges à éviter
- Exécution pas à pas (F8) et point d'arrêt : débogage guidé
Livrable : Macro « Synthese_Jour » dans la bibliothèque personnelle, commentée et testée.
Manipuler feuilles, cellules et plages en Basic
Objectif operationnel : Écrire du code qui accède au contenu, aux formats et aux styles des cellules avec l'API UNO.
Contenu :
- Le modèle objet UNO : ThisComponent, getSheets(), getByIndex(n), getByName(nom) — accès à un classeur, à une feuille, à une cellule
- Objet Cell : getValue(), getString(), setValue(), setFormula(), setPropertyValue() — lire et écrire
- Objet Range (plage) : getCellByPosition(col, ligne), getCellRangeByName(« A1:C10 ») — les deux syntaxes équivalentes
- Parcourir une plage : boucle For sur les lignes et les colonnes, arrêt sur cellule vide
- Manipuler la mise en forme : CharColor, CellBackColor, HoriJustify, NumberFormat via getServiceManager()
- Insérer, supprimer, dupliquer une feuille par code : insertNewByName, removeByName, copyByName
- Appliquer un style de cellule existant (CellStyle) — s'appuyer sur les styles définis dans le document
- Manipuler les commentaires et les protections de cellules par code
Livrable : Macro « Surligner_Marges » et son code documenté.
Boîtes de dialogue et interface utilisateur
Objectif operationnel : Créer des interfaces utilisateur simples pour rendre les macros exploitables par des non-développeurs.
Contenu :
- Boîtes de dialogue de base : MsgBox (information), InputBox (saisie utilisateur), constants (vbYesNo, vbCritical)
- Créer une boîte de dialogue personnalisée dans l'IDE (Outils > Dialogues) : formulaire avec zones de texte, listes déroulantes, cases à cocher, boutons
- Événements sur les contrôles : gestionnaires OnClick, OnItemStateChanged — associer une macro à un bouton
- Charger, afficher, fermer une boîte de dialogue : CreateUnoDialog, execute, endExecute
- Ajouter une macro au menu ou à la barre d'outils (Outils > Personnaliser)
- Assigner une macro à un événement du document : ouverture, sauvegarde, modification (Outils > Personnaliser > Événements)
- Bonnes pratiques UX : intitulés clairs, valeurs par défaut, contrôles obligatoires, message de confirmation, undo si possible
Livrable : Boîte de dialogue « Extraction_Periode » et sa macro associée, prêtes à être copiées dans n'importe quel classeur d'analyse.
Interconnexion Calc / Writer / Base / fichiers
Objectif operationnel : Faire dialoguer Calc avec les autres composants LibreOffice et avec l'environnement du système.
Contenu :
- Ouvrir un document Writer depuis Calc et y insérer un tableau (StarDesktop.loadComponentFromURL)
- Publipostage programmatique : générer plusieurs Writer à partir d'une base Calc (courriers types, attestations, convocations)
- Se connecter à une base LibreOffice Base ou une base externe (ODBC / JDBC) : DatabaseContext, exécuter une requête SQL
- Importer un CSV par code : filtre CSV, séparateur, encodage, lignes à ignorer
- Exporter en PDF programmatiquement : storeToURL avec filtre PDF, options (pages, protection)
- Lire et écrire un fichier texte (open, print #, close) et un fichier JSON simple
- Appeler une commande shell externe (Shell) et gérer le retour
- Sécurité : signature numérique des macros (Outils > Macros > Signature) et niveau de sécurité (Outils > Options > Sécurité)
Livrable : Workflow complet « Generer_Attestations » avec code et 15 PDF de test.
Publication, sécurité et interopérabilité Excel VBA
Objectif operationnel : Partager, sécuriser et maintenir ses macros, et anticiper les points de vigilance sur les fichiers Excel avec VBA.
Contenu :
- Organiser sa bibliothèque : nommage cohérent, un module par fonction métier, documentation en tête de module
- Exporter une bibliothèque : Outils > Macros > Organiser les bibliothèques > Exporter — package .obl transférable
- Bibliothèque partagée en réseau : chemin UNC, droits d'accès, gouvernance
- Niveaux de sécurité Calc : très élevé (macros signées uniquement), élevé, moyen, faible — impact sur l'ouverture
- Signature numérique de la bibliothèque : générer un certificat, l'appliquer, valider chez les utilisateurs
- Interopérabilité avec Excel VBA : ce qui passe (structure Sub / End Sub, MsgBox, boucles basiques), ce qui ne passe pas (objet Range vs Cells, EventProc, ActiveX Excel)
- Table de correspondance VBA ↔ Basic : ThisWorkbook / ThisComponent, Worksheets / Sheets, Cells / getCellByPosition — pièges classiques
- Import / export d'un classeur avec macros : format .xlsm vs .ods+lib — bonnes pratiques
Livrable : Bibliothèque `.obl` signée et prête à être diffusée dans l'organisation + guide utilisateur (1 page).
- Enregistrer, lire et nettoyer une macro dans l'IDE LibreOffice Basic
- Écrire du code Basic pour manipuler feuilles, cellules, plages et propriétés (contenu, format, style)
- Créer des boîtes de dialogue simples (formulaires) pour interagir avec l'utilisateur
- Interconnecter Calc avec Writer (publipostage programmatique), Base (import SQL) et le système de fichiers
- Publier, sécuriser et documenter ses macros dans une bibliothèque partageable
- Identifier les équivalences et les limites d'interopérabilité entre LibreOffice Basic et Excel VBA
Prix par participant
Financement OPCO ou France Travail possible
Organisme certifié Qualiopi
Garantie qualité et éligibilité aux financements publics
Formation intra-entreprise
Aucune session ne vous convient ? Cette formation est également disponible en intra-entreprise, sur mesure et dans vos locaux.
Formations similaires
Découvrez d'autres formations dans la catégorie Bureautique & Microsoft 365
Prêt à vous former ?
Nos conseillers vous accompagnent dans le choix de votre financement et la mise en place de votre formation.