Dokument übergreifender Zugriff

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Dokument übergreifender Zugriff

Beitrag von Wolf »

Hallo,

Ich habe folgendes Problem.
Ich möchte von einem Dokument aus ("Dokument1") in dem ein Makro läuft, mit diesem Makro ein zweites Dokument ("Dokument2") aufrufen, mit diesem Makro aus "Dokument1" den Wert einer Tabellenzelle lesen und den Wert in die Zelle in "Dokument2" schreiben.
Nochmal Kurz:

1. "Tabellendokument1" laden
2. Makro in "Tabellendokument1" starten
3. Dieses Makro liest Wert aus "Tabellendokument1"
4. Das Makro öffnet "Tabellendokument2"
5. ...schreibt den Wert in eine Zelle in "Tabellendokument2"
6. ...speichert "Tabellendokument2"
7. Makro schließt "Tabellendokument2"
8. Makro wird beendet.

Die Punkte 4 bis 7 (speziell 5 und 6) sind mein Problem.

Wohl gemerkt, es handelt sich bei dem Makro nur um ein einziges Makro, was im "Tabellendokument1" gespeichert ist.

Weiss jemand, wie ich mit einem Makro ein Dokument öffnen, es an einer bestimmten Stelle ändern, das Dokument speichern und dann schließen kann ?


Dank Euch

Wolf
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Die Dateien sind D:\Datei1.sxc und D:\Datei2.sxc

3. Dieses Makro liest Wert aus "Tabellendokument1"

Code: Alles auswählen

x = ThisComponent.Sheets(0).getCellByPosition(0,0).Value
4. Das Makro öffnet "Tabellendokument2"

Code: Alles auswählen

Dim Dokument as Object
Dim sUrl as String
Dim Dummy()
sUrl = ConvertToUrl ("D:\Datei2.sxc")
Dokument = StarDesktop.loadComponentFromURL	( sUrl , "_blank", 0, Dummy() )
5. ...schreibt den Wert in eine Zelle in "Tabellendokument2"

Code: Alles auswählen

Dokument.Sheets(0).getCellByPosition(0,0).Value = x

6. ...speichert "Tabellendokument2"

Code: Alles auswählen

Dokument.storeToUrl(  sUrl , Dummy() )
7. Makro schließt "Tabellendokument2"

Code: Alles auswählen

Dokument.Close(true)

Code: Alles auswählen

Sub Main
x = ThisComponent.Sheets(0).getCellByPosition(0,0).Value
Dim Dokument as Object
Dim sUrl as String
Dim Dummy()
sUrl = ConvertToUrl ("D:\Datei2.sxc")
Dokument = StarDesktop.loadComponentFromURL	( sUrl , "_blank", 0, Dummy() )
Dokument.Sheets(0).getCellByPosition(0,0).Value = x
Dokument.storeToUrl(  sUrl , Dummy() )
Dokument.Close(true)
End Sub
Gruß
Stephan
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Beitrag von Wolf »

Hallo Stefan,

Sieht gut aus, das probiere ich aus.
Danke für die schnelle und exakte Antwort.

Wolf
Antworten