FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ
Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017 Ajouter une question
Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).
Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.
Cette procédure permet de récupérer le nom des modules contenus dans le fichier.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | Sub ListeModules Dim Tableau() Dim I As Integer Tableau()= ThisComponent.BasicLibraries.getByName("Standard").ElementNames For I = 0 To UBound(Tableau()) MsgBox Tableau(I) Next I End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 | Sub RecupererContenuModule MsgBox ThisComponent.BasicLibraries.getByName("Standard").getByName("Module1") 'Deuxième possibilité MsgBox ThisComponent.LibraryContainer.getByName("Standard").ModuleContainer. _ getByName("Module1").Source End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 | Sub AfficherEditeurMacros() Dim oDisp As Object Dim Args() oDisp = createUnoService( "com.sun.star.frame.DispatchHelper" ) oDisp.executeDispatch( StarDesktop, "slot:30783", "", 0, Args() ) End Sub |
Ces procédures permettent de créer un nouveau module et d'y insérer une macro dynamiquement.
Remarque :
Si l'éditeur de macro est ouvert lorsque vous lancez la procédure : fermez puis rouvrez-le afin de visualiser le résultat.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 | Sub CreationNouveauModule Dim Librairie As Object Librairie = ThisComponent.BasicLibraries.GetByName("Standard") Librairie.InsertByName("NomModule", "REM Test") End Sub |
Un autre exemple :
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Sub CreerModule_Et_MacroDynamiquement Dim laMacro As String Dim Librairie As Object Librairie = ThisComponent.BasicLibraries.GetByName("Standard") 'Prépare le contenu de la nouvelle macro laMacro = Chr(13) & Chr(13) & "Sub Test" & Chr(13) laMacro = laMacro & "MsgBox " & Chr(34) & "Coucou" & Chr(34) & Chr(13) laMacro = laMacro & "End Sub" 'Crée le module et la macro Librairie.InsertByName("NomModule2", laMacro) End Sub |
Cet exemple permet de supprimer un module nommé « Module1 ».
Remarque :
Si l'éditeur de macro est ouvert lorsque vous lancez la procédure : fermez puis rouvrez-le afin de visualiser le résultat.
Code vb : | Sélectionner tout |
1 2 3 4 5 | Sub SupprimerModule Dim Librairie As Object Librairie = ThisComponent.BasicLibraries.getByName("Standard") Librairie.removeByName("Module1") End Sub |
Cette macro, placée dans le module à supprimer, provoque un plantage du fichier.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.