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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Pilotage OpenOffice Writer depuis VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Par défaut Pilotage OpenOffice Writer depuis VBA
    Bonjour,
    J'ai actuellement une appli VBA Access qui utilise MS Word pour générer des courriers.
    J'ai besoin de compléter cette application pour pouvoir utiliser OpenOffice (OO writer) à la place de MS Word.
    J'ai trouvé comment initialiser OO writer et utiliser les bookmarks dans le document.
    Il me reste 2 fonctions pour lesquelles je suis bloqué:
    - Changer une propriétés du document
    (Equivalent de wdapp.Dialogs(wdDialogFileSummaryInfo).Comments avec Word)
    - Pouvoir créer et manipuler un tableau dans OO writer
    (Equivalent de Set wdtable = wddoc.Tables.Add(Range:=MyRange, NumRows:=10, NumColumns:=2 et de wdtable.Borders.Columns(1).Width, wdtable.Cell(1, 1).Range.Text, etc...)
    Avez-vous des idées/exemples sur comment s'y prendre ?

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Par défaut
    Bonsoir,

    j'ai trouvé cela comme code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Dim objServiceManager As Object
        Dim objDesktop As Object
        Dim args()
     
        Set objServiceManager= CreateObject("com.sun.star.ServiceManager")
        Set Stardesktop=
    objServiceManager.createInstance("com.sun.star.frame.Desktop")
        Set doc = Stardesktop.loadComponentFromURL("private:factory/swriter",
    "_blank", 0, args)
        Set text = doc.getText()
        text.setString("Hello World")
        REM You can get the full example in the SDK (under OLE examples)
        REM Read the Automation Bridge part of the Developer's Guide for writing
    code with WSH or JScript, both are very similiar to VBScript
    Par contre, comment gères-tu les signets sous openoffice ? ... cela m'intéresse ...

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Par défaut
    Merci pour le code mais j'ai déjà réussi à remplacer un bookmark par du texte avec le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim oSrvMgr, oDesk, oDoc As Object 'OOo objects
    Dim arg()
     
    Set oSrvMgr = CreateObject("com.sun.star.ServiceManager")
    Set oDesk = oSrvMgr.createInstance("com.sun.star.frame.Desktop")
    Set oDoc = oDesk.loadComponentFromURL("file:///c:/Template/XYZ.ott", "_blank", 0, arg())
    oDoc.getBookmarks().getByName("Nom").getAnchor.setString ("Jacques Durand")
     
    Set oDoc = Nothing
    Set oDesk = Nothing
    Set oSrvMgr = Nothing
    Dans Openoffice, pour rajouter un signet (bookmark), tu sélectionnes le texte (par exemple "Nom") puis Menu Insérer et Signet (J'utilise la version anglaise dont dans ce cas "insert" puis "bookmark").
    Ensuite avec le code indiqué tu peux remplacer depuis VBA le signet "Nom" par une valeur ("Jacques Durand" dans l'exemple).

    Si quelqu'un sait comment aller plus loin et changer une propriété du document Openoffice ou créer un tableau Write, je suis interessé...

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Par défaut
    Bonsoir,

    Je vais tester ce code avec impatience ...

    En effet, ma base de données ACCESS est totalement intégrée à office ... or j'aimerai pouvoir m'en défaire .. en gardant access avec son runtime :

    - agenda ... je laisse tomber OUTLOOK pour l'agenda de USER qui est exceptionnel

    - mail ... outlook express est suffisant

    - traitement de texte ... writer

    OUTLOOK n'est plus indispensable que pour les MAJ de mon agenda sur mon NOKIA ... mais si quelqu'un a une idée, je suis preneur ...

    Pour revenir à writer, je pense que ce qui est intéressant est à cet endroit :

    REM You can get the full example in the SDK (under OLE examples)
    REM Read the Automation Bridge part of the Developer's Guide for writing
    code with WSH or JScript, both are very similiar to VBScript
    Notamment à cette adresse :

    http://wiki.services.openoffice.org/...omation_Bridge

Discussions similaires

  1. [Lazarus] Pilotage de OpenOffice Writer
    Par jcB22 dans le forum Lazarus
    Réponses: 3
    Dernier message: 03/02/2012, 08h32
  2. Pilotage de Firefox depuis VBA
    Par mioux dans le forum Général VBA
    Réponses: 5
    Dernier message: 01/06/2010, 10h13
  3. Réponses: 0
    Dernier message: 13/11/2008, 23h47
  4. Fusion automatique données access sur openoffice writer
    Par HookerSeven dans le forum Access
    Réponses: 4
    Dernier message: 16/06/2008, 17h16
  5. Transaction depuis VBA--
    Par Fritzoune dans le forum Access
    Réponses: 1
    Dernier message: 16/09/2005, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo