Libreoffice basic : premiers pas avec le langage de macros intégré
Pourquoi parler de LibreOffice Basic sur un blog consacré à Excel ?
Vous êtes sans doute venu(e) sur ExcelMania pour maîtriser Excel dans ses moindres détails… alors pourquoi s’attarder sur LibreOffice Basic ? Parce que derrière ce nom parfois perçu comme une alternative « gratuite » se cache une véritable boîte à outils pour les passionnés de productivité et d’automatisation.
LibreOffice Basic, c’est le langage de macros intégré à la suite bureautique LibreOffice. Il joue le même rôle que VBA sous Excel, mais avec son propre style et certaines particularités. Alors si vous êtes curieux de découvrir comment vous pourriez, vous aussi, automatiser vos tâches et booster votre efficacité dans LibreOffice, cet article est fait pour vous.
Et qui sait, peut-être que demain, vous serez le héros du bureau en ayant automatisé le reporting hebdomadaire de votre collègue… sur LibreOffice Calc !
LibreOffice Basic, kesako ?
LibreOffice Basic, parfois appelé StarBasic, est le langage de programmation utilisé pour écrire des macros dans LibreOffice. Il ressemble énormément à VBA (Visual Basic for Applications), mais il existe suffisamment de différences pour justifier que l’on prenne le temps de bien en cerner les contours.
Bonne nouvelle : si vous avez déjà mis les mains dans le code avec Excel VBA, vous ne serez pas totalement dépaysé. Et si c’est votre première fois ? Pas de panique. On va prendre ça étape par étape, dans la bonne humeur, comme toujours sur ExcelMania.
Comment accéder à l’éditeur de macros dans LibreOffice ?
Avant d’écrire la moindre ligne de code, encore faut-il savoir où cliquer. Voici comment accéder rapidement à l’éditeur de macros dans LibreOffice :
- Ouvrez LibreOffice (Writer, Calc, etc.)
- Allez dans le menu Outils > Macros > Organiser les macros > LibreOffice Basic
- Dans la fenêtre qui s’ouvre, cliquez sur Nouveau pour créer une macro
Vous voilà face à l’éditeur ! Il n’est pas aussi puissant que l’Éditeur VBA d’Excel, mais il fait le job. La fenêtre est divisée entre l’arborescence à gauche et l’éditeur de code à droite.
Écrire votre toute première macro avec LibreOffice Basic
Commençons simple. Voici une macro minimaliste qui affiche une boîte de dialogue (oui, comme la célèbre MsgBox
en VBA) :
Sub BonjourLeMonde MsgBox "Bonjour le monde depuis LibreOffice Basic !"End Sub
Copiez-collez ce code dans l’éditeur, cliquez sur la petite icône verte en haut (ou appuyez sur la touche F5), et admirez le résultat. Une boîte de message apparaît. Simple, propre, efficace.
Ce type de macro peut paraître rudimentaire, mais c’est par là qu’on commence avant de faire des choses plus costaudes. Comme manipuler des cellules, interagir avec l’utilisateur ou automatiser des calculs.
Les bases du langage : ce que vous devez savoir
LibreOffice Basic, comme VBA, repose sur les mêmes grands principes de programmation. Voici les bases que vous allez utiliser très souvent :
- Les variables : elles servent à stocker des données (nombres, texte, etc.)
- Les structures conditionnelles :
If...Then...Else
- Les boucles :
For...Next
,While...Wend
,Do...Loop
- Les fonctions et procédures : pour organiser votre code
Petit exemple avec une boucle For
:
Sub CompterJusquaDix Dim i As Integer For i = 1 To 10 MsgBox "Compteur : " & i Next iEnd Sub
Pas idéal si vous êtes pressé, mais ça montre bien le mécanisme. Et avec un petit MsgBox
, tout passe mieux.
Manipuler une feuille LibreOffice Calc
Maintenant, entrons dans le vif du sujet : comment manipuler des données dans Calc comme vous le feriez dans une feuille Excel ? Voici un exemple tout simple pour écrire dans la cellule A1 :
Sub EcrireDansA1 Dim oDoc As Object Dim oFeuille As Object oDoc = ThisComponent oFeuille = oDoc.Sheets(0) oFeuille.getCellByPosition(0, 0).String = "Hello LibreOffice!"End Sub
Quelques remarques importantes ici :
ThisComponent
fait référence au fichier en coursSheets(0)
désigne la première feuille (comme les tableaux en programmation, l’index commence à 0)getCellByPosition(colonne, ligne)
vous permet d’accéder à une cellule (0,0 correspond à A1)
Un peu différent d’Excel VBA, où l’on utilise souvent Range("A1")
, mais on s’y fait vite.
Créer une fonction personnalisée (User Defined Function)
Ah, les fameuses UDF (User Defined Functions). Sous Excel, elles sont formidables. Mais saviez-vous que vous pouvez aussi créer vos propres fonctions dans LibreOffice Calc ? Voici un exemple simple :
Function AjouterDeuxNombres(a As Double, b As Double) As Double AjouterDeuxNombres = a + bEnd Function
Une fois cette fonction créée, vous pourrez l’utiliser dans une cellule comme ceci :
=AjouterDeuxNombres(5; 7)
Et hop, 12 en un clin d’œil. Pratique pour créer vos propres règles métier ou automatiser des calculs complexes.
Attention aux différences avec VBA
Avant de vous lancer tête baissée en vous disant « c’est juste du VBA avec un autre nom », voici quelques différences importantes à garder en tête :
- Les objets et leur organisation sont différents : vous ne trouverez pas les objets
Range
,Workbook
ouWorksheet
- La documentation est moins dense, compte tenu de la communauté plus restreinte (mais elle existe, notamment grâce à l’excellent wiki de LibreOffice)
- Le dépannage et le débogage peuvent être un peu plus laborieux, donc apprenez à sauvegarder souvent
Mais n’oubliez pas : une fois qu’on a compris la logique des objets UNO (Universal Network Objects, le cœur d’OpenOffice/LibreOffice), tout devient possible.
Et entre nous : vous avez survécu à Power Query, vous survivrez à LibreOffice Basic 😉
Dépannage rapide : erreurs fréquentes
Voici quelques-unes des erreurs les plus fréquemment rencontrées par les débutants, et comment les éviter :
- Erreur d’accès à une cellule : vérifiez bien les indices. A1 = (0, 0), B2 = (1, 1), etc.
- Erreur de type : Toujours bien définir vos variables avec
Dim
et leur type (ex.As Integer
,As String
) - Macro qui ne s’exécute pas : Assurez-vous que la macro est bien « liée » au bon module et au bon document
Et tant qu’à faire : sauvegardez votre fichier avant de tester une macro. LibreOffice est robuste, mais ce serait dommage de perdre vos données à cause d’un MsgBox
rebelle.
Aller plus loin : des ressources utiles
Si vous souhaitez approfondir vos connaissances, voici quelques liens utiles à bookmarker :
- Le wiki officiel de LibreOffice (en français !) sur les macros
- La documentation API officielle de LibreOffice
- Le forum d’entraide Ask LibreOffice
Et bien sûr, n’oubliez pas de repasser régulièrement sur ExcelMania.fr pour trouver d’autres astuces, que ce soit sur Excel, VBA, ou sur les outils cousins du monde Libre !
À très vite pour de nouvelles découvertes numériques… et si vous avez codé votre première macro LibreOffice, venez me le raconter en commentaire ! 🎉