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.


SommaireProgrammation OBasicL'éditeur de macros (5)
précédent sommaire suivant
 

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

Mis à jour le 3 août 2013 SilkyRoad

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

Mis à jour le 3 août 2013 SilkyRoad

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

Mis à jour le 3 août 2013 SilkyRoad

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

Mis à jour le 26 août 2013 SilkyRoad

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
Important :
Cette macro, placée dans le module à supprimer, provoque un plantage du fichier.

Mis à jour le 26 août 2013

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 ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les 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 © 2020 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.