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.
Lorsque vous pilotez LibO/AOO depuis VB ou VBA, il n'est pas possible d'utiliser directement les constantes de l'application OOo.
Vous devez remplacer la constante par sa valeur afin de faire fonctionner vos procédures.
Par exemple, ces lignes LibO/AOO :
Code vb : | Sélectionner tout |
1 2 | ArgsDoc(0).Name = "MacroExecutionMode" ArgsDoc(0).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN |
seront utilisées ainsi lors d'un pilotage depuis VB ou VBA :
Code vb : | Sélectionner tout |
1 2 | ArgsDoc(0).Name = "MacroExecutionMode" ArgsDoc(0).Value = 4 |
Pour connaitre la valeur d'une constante, vous pouvez créer une macro dans LibO/AOO comme dans l'exemple ci-dessous :
Code vb : | Sélectionner tout |
1 2 3 | Sub Main MsgBox com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN End Sub |
Dans l'exemple suivant, LibO/AOO reste masqué pendant le déroulement de la procédure :
La macro VB/VBA ouvre un classeur OOo pour insérer une donnée dans la cellule A1, puis referme le fichier.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | Option Explicit Sub Test() Dim serviceManager As Object, Desktop As Object, Document As Object Dim Fichier As String Dim Args(0) As Object Dim T As Date 'Appel fonction de conversion Fichier = ConvertToURL("C:\LeClasseur.ods") 'Création d'une instance Open Office Set serviceManager = CreateObject("com.sun.star.ServiceManager") Set Desktop = serviceManager.createInstance("com.sun.star.frame.Desktop") '-------------- 'Tableau pour les paramètres du mode masqué Set Args(0) = _ serviceManager.Bridge_getStruct("com.sun.star.beans.PropertyValue") 'Arguments Open Office pour masquer le fichier Args(0).Name = "Hidden" 'nom de l'argument Args(0).Value = True 'valeur de l'argument 'Ouverture du fichier Set Document = _ Desktop.loadComponentFromURL(Fichier, "_blank", 0, Args()) '-------------- 'Ecrit dans la cellule A1 de la feuille Document.getSheets.getByName("Feuille1").getCellRangeByName("A1").Value = 1234 'Enregistre les modifications Document.store DoEvents '-------- 'Ajoute une temporisation de 2 secondes pour empêcher que le fichier 'ne se ferme avant la fin de l'enregistrement. T = Timer + 2: Do Until Timer > T: DoEvents: Loop '-------- 'Fermeture du fichier : Document.Close (True) MsgBox "Opération terminée" End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 | Function ConvertToURL(Fichier As String) 'Fonction de conversion au format URL Dim Cible As String Cible = Fichier Cible = Replace(Cible, "\", "/") ConvertToURL = "file:///" & Cible End Function |
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.