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

fl0 Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   -  
fl0 Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

6 réponses

OOoForum Messages postés 3873 Date d'inscription   Statut Membre Dernière intervention   961
 
VB = Microsoft
Quel est le rapport avec OpenOffice ?
Le copier/coller entre classeurs est expliqué ici :
https://forum.openoffice.org/fr/forum/ftopic6371-macro-copier-coller-entre-ods.html


.
0
fl0 Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   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
OOoForum Messages postés 3873 Date d'inscription   Statut Membre Dernière intervention   961
 
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
fl0 Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
OOoForum Messages postés 3873 Date d'inscription   Statut Membre Dernière intervention   961
 
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
fl0 Messages postés 357 Date d'inscription   Statut Membre Dernière intervention   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