IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

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 OBasicAutomation (4)
précédent sommaire suivant
 

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

Mis à jour le 26 août 2013 SilkyRoad

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

Mis à jour le 27 août 2013 SilkyRoad

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