VB Remplir fichier ODS (openoffice Calc) déjà ouvert

fl0 Messages postés 365 Statut Membre -  
fl0 Messages postés 365 Statut Membre -
Bonjour à tous,

Je souhaite remplir et lire un fichier ods de openoffice calc déjà ouvert.
Je fais déjà cette opération avec excel assez facilement avec un "Getobject" mais je n'y arrive pas avec Open office.

Je suis déjà parvenu à ouvrir un fichier existant, à le modifier, à le sauvegarder et à le fermer avec le code suivant mais maintenant je dois le faire sur un fichier déjà ouvert.

'chemin du fichier à ouvrir
fichier = "file:///H:\Synchronized\stat.ods"
fichier = Replace(fichier, "\", "/")

Set oServ = CreateObject("com.sun.star.ServiceManager")
Set oDesk = oServ.createInstance("com.sun.star.frame.Desktop")

Set Doc = oDesk.loadComponentFromURL(fichier, "_blank", 0, Args)
Set oSheet = Doc.getSheets().getByIndex(0)

oSheet.getCellByPosition(20,20).SetString ("test")

Doc.store()
Doc.Close (True)

Merci pour votre aide

Configuration: Windows / Edge 95.0.1020.44

6 réponses

  1. fl0 Messages postés 365 Statut Membre 209
     
    Bonjour,

    VB est aussi intégré par d'autre entreprise que Microsoft. Par exemple Siemens pour la programmation de machine.
    Si vous voulez le detail, c'est un IHM de machine qui doit réaliser des statistiques pendant le process.
    Ces calculs de statistiques peuvent être réalisés par Calc de open office mais il faut tout de même que les données soient envoyées par l'IHM.
    Actuellement je rempli un fichier Excel avec l'IHM mais maintenant nous souhaitons remplir le fichier Calc

    Merci
    0
  2. OOoForum Messages postés 3871 Date d'inscription   Statut Membre Dernière intervention   965
     
    VB = VisualBasic qui est un langage de programmation orienté pour la suite MS-Office.
    OpenOffice a son propre Basic et les deux langages sont complètement différents.

    .
    0
  3. fl0 Messages postés 365 Statut Membre 209
     
    Je n'ai jamais dit que j'utilisais le basic de openOffice.
    Je veux acceder à mon document Open Office à partir d'une application tierce.
    Cette application tierce utilise visual basic.

    Sinon ça vous arrive d'intervenir sur le forum pour faire avancer les sujets ?
    Pour aider les autres il faut ouvrir son esprit et essayer de comprendre le sujet.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. OOoForum Messages postés 3871 Date d'inscription   Statut Membre Dernière intervention   965
     
    Il me semble vous avoir donné un lien.
    Votre application ne peut pas piloter OpenOffice avec du VB.
    Maintenant, ici on donne de l'aide pro bono. Je m'arrêterai donc là.
    Bon courage.

    .
    0
  6. fl0 Messages postés 365 Statut Membre 209
     
    Un lien qui n'a aucun rapport

    C'est possible
    Voici le code. Je n'ai pas terminé mais ce n'est pas avec votre lien que j'ai pu avancer

    Dim Args()
    Dim serviceManager
    Dim fichier, oServ, oDesk, oSheet, Doc
    Dim CalcApp
    Dim start
    Dim cmpt
    Dim validation
    Dim ErrorDesc
    Dim CellRange, Flags
    Dim RangeCell
    Dim SearchFlags

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''Transformation du chemin pour l'ouvrir au format URL'''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    fichier = "file:///Z:\H\Not_Synchronized\stat.ods"
    fichier = Replace(fichier, "\", "/")
    '-------------

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''Création d'une instance OpenOffice''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Set oServ = CreateObject("com.sun.star.ServiceManager")
    Set oDesk = oServ.createInstance("com.sun.star.frame.Desktop")

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''Création d'un nouveau fichier Calc'''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Set Doc = oDesk.loadComponentFromURL(fichier, "_blank", 0, Args)

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''Utilisation du classeur déjà ouvert'''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Set Doc = oDesk.CurrentComponent

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Se placer sur la première feuille'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Set oSheet = Doc.getSheets().getByIndex(0)

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''''''Ecriture dans une cellule avec les coordonnées getCellByPosition(column, row) Attention commencer par 0,0 = A1'''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    oSheet.getCellByPosition(20,20).SetString (SmartTags("ErrorDesc").Value)
    'oSheet.getCellByPosition(20,20).SetString ("test1")

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''''''Lecture valeur de cellule avec les coordonnées getCellByPosition(column, row) Attention commencer par 0,0 = A1'''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ErrorDesc = oSheet.getCellByPosition(20,20).string

    SmartTags("ErrorDesc") = ErrorDesc

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''''Selection plage de cellule avec les coordonées getCellRangeByPosition(c1,l1,c2,l2) Attention commencer par 0,0 = A1''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Set RangeCell = oSheet.getCellRangeByPosition(1,19,1,50)

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''Selection plage de cellule avec le nom getCellRangeByName("A19:A29")''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Set RangeCell = oSheet.getCellRangeByName("A19:A29")
    RangeCell.clearContents(1023)

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''Sauvegarde du fichier en cours''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Doc.store()

    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''Fermeture du fichier en cours''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'Doc.Close (True)

    c'est possible d'ouvrir un classeur, de travailler sur un classeur déjà ouvert.
    Effectivement vous pouvez arréter la.

    Je posterai mon code final pour aider d'autres personnes quand j'aurai terminé.
    0