DDE und Makro, das Calc-Datei öffnet

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: DDE und Makro, das Calc-Datei öffnet

Re: DDE und Makro, das Calc-Datei öffnet

von TJF » Mi, 23.12.2009 08:37

Hallo Stephan,
Für Letzteres würde ich als Workaround die Aktualisierung über Extras-Aktualisieren als Makro aufzeichnen und dieses Makro dem Ereignis "Dokument aktivieren" (Über Extras-Ampassen-Ereignisse) des Wrtiterdokuments zuweisen (funktioniert hier bei OOo 3.1.0 problemlos).
Wenn das Writer-Dokument geöffnet wird, kann ich es aktualisieren. Ob automatisch, manuell oder über Makro. Oder aber über die Dokument-Aktivierung mit Makro, wie du vorgeschlagen hast. Immer muss ich das Calc-Dokument "manuell" öffnen (vom Win-Explorer aus z.B.) und alle Aktualisierungswege funktionieren dann auch (auf allen beschriebenen Wegen). Sobald ich aber das Calc-Dokument aus dem Writer-Dokument heraus über das andere Makro ("oeffne_dok") öffne, funktioniert danach (!) keiner der o.g. Aktualisierungswege mehr (OO3.11). Es hilft nur noch ein Neustart von OO, damit sich die Verknüpfung überhaupt wieder so wie beschrieben aktualisieren läßt...

Viele Grüße
Thomas

Re: DDE und Makro, das Calc-Datei öffnet

von Stephan » Mi, 23.12.2009 02:38

das habe ich als eine der ersten Maßnahmen gemacht: Auf manuelle Aktualisierung umgestellt und die Aktualisierung per Makro ausgeführt. Es bleibt aber dabei. Es besteht ein Unterschied zwischen einem externen Start des Calc-Dokuments und einem internen Start via Makro.
Ich habe nirgens in Zweifel gezogen das ein UNterschied besteht. Hingegen habe ich einen Workarond nenannt der diesen UNterschied (bzw. die genannten Proibleme hinsichtliuch des nicht-Aktualisierens) aufhebt, nämlich:
Für Letzteres würde ich als Workaround die Aktualisierung über Extras-Aktualisieren als Makro aufzeichnen und dieses Makro dem Ereignis "Dokument aktivieren" (Über Extras-Ampassen-Ereignisse) des Wrtiterdokuments zuweisen (funktioniert hier bei OOo 3.1.0 problemlos).

Falls das bei Dir nicht funktioniert (ich habe es bei mir, wie gesagt, getestet und es funktioniert) solltest du bitte mitteilen was konkret nicht funktioniert.

ich habe jetzt mal getestet, wie es ist, wenn ich aus dem Writer-Dokument heraus das Calc-Doku öffne, im Writer die Verknüpfung löse, alles lösche und im so geöffneten Zustand neu verknüpfe: Zwischen beiden Dokumenten ist danach auf keinem Weg eine Verknüpfung herstellbar!
Habe ich hier getestet (OOo 3.1.0) ich kann diese Probleme jedoch nicht nachvollziehen, d.h. nach LÖschen der Verknüpfung ist sie einwandfrei wieder neu anlegbar.


Gruß
Stephan

Re: DDE und Makro, das Calc-Datei öffnet

von TJF » Di, 22.12.2009 23:31

Hallo,

ich habe jetzt mal getestet, wie es ist, wenn ich aus dem Writer-Dokument heraus das Calc-Doku öffne, im Writer die Verknüpfung löse, alles lösche und im so geöffneten Zustand neu verknüpfe: Zwischen beiden Dokumenten ist danach auf keinem Weg eine Verknüpfung herstellbar!

Gruß
Thomas

Re: DDE und Makro, das Calc-Datei öffnet

von TJF » Di, 22.12.2009 23:19

Hallo Stephan,

das habe ich als eine der ersten Maßnahmen gemacht: Auf manuelle Aktualisierung umgestellt und die Aktualisierung per Makro ausgeführt. Es bleibt aber dabei. Es besteht ein Unterschied zwischen einem externen Start des Calc-Dokuments und einem internen Start via Makro.

Übrigens geht das hier auch einwandfrei, d.h. Aktualisierung ist möglich: Ein gleichzeitiger Start beider Dateien via Windows-Batch (ist nur hier unpraktikabel - will ich nicht weiter unnötig verkomplizieren an dieser Stelle...):

Code: Alles auswählen

start/D "" DDE.odt
start/D "" DDE_Rechnung_Artikel.ods
exit
Dank und Gruß
Thomas

Re: DDE und Makro, das Calc-Datei öffnet

von Stephan » Di, 22.12.2009 22:41

Das Problem ist nun, dass auf diese Weise keine Aktualisierung mehr möglich ist! Als würde die DDE-Verknüpfung mit dem auf diese Weise geöffneten Dokument nicht mehr bestehen.
das kann ich hier (OOo 3.1.0) nicht nachvollziehen, eine Aktualisierung der Verknüpfung ist jederzeit über Bearbeiten-Verknüpfungen oder Extras-Aktualisieren möglich, lediglich aktualisiert sich die Verknüpfung nicht mehr automatisch.

Für Letzteres würde ich als Workaround die Aktualisierung über Extras-Aktualisieren als Makro aufzeichnen und dieses Makro dem Ereignis "Dokument aktivieren" (Über Extras-Ampassen-Ereignisse) des Wrtiterdokuments zuweisen (funktioniert hier bei OOo 3.1.0 problemlos).


Gruß
Stephan

Re: DDE und Makro, das Calc-Datei öffnet

von TJF » Di, 22.12.2009 20:24

Hallo Balu,
Kein Wunder, denn Du hast ja NUR die Datei geöffnet, mehr nicht.
Und nun?
Wo hast Du denn die Zellangabe mit der auszulesenden Zelle?
Woher soll denn jetzt das Makro wissen, von wo es denn die Werte holen soll?
Die konkrete Datei hat ja einen Namen und ist mit Namen und genau diesen Zellen verknüpft. Die Zellangaben sind natürlich in der Writer-Datei (Bearbeiten->Verknüpfungen). Es geht ja übrigens gelegentlich nach dem Zufallsprinzip ... Die Datei soll ja nicht neu verknüpft werden, sondern lediglich aus dem Dokument heraus geöffnet werden. Nicht mehr.

Viele Grüße
Thomas

Re: DDE und Makro, das Calc-Datei öffnet

von balu » Di, 22.12.2009 20:05

Hallo Thomas,

auch wenn ich fast Null-Ahnung von Makros habe, so ist mir da was aufgefallen.
Es sieht alles richtig aus.
Da sage ich jetzt mal ganz frech; Nö is es aber net! :wink:

Als würde die DDE-Verknüpfung mit dem auf diese Weise geöffneten Dokument nicht mehr bestehen.
Kein Wunder, denn Du hast ja NUR die Datei geöffnet, mehr nicht.
Und nun?
Wo hast Du denn die Zellangabe mit der auszulesenden Zelle?
Woher soll denn jetzt das Makro wissen, von wo es denn die Werte holen soll?

Ich weiss jetzt nicht wie hier die Spezialisten weiter vorgehen würden, aber ich würde jetzt, nach dem die Calc-Datei geöffnet ist, eine zusätzliche DDE-Verknüpfung einbauen. Die in deinem Fall ungefähr wie folgt aussehen würde.

Code: Alles auswählen

Dim sFormula as String

sFormula = "=DDE(""soffice""""";""""E:\Vorlagen\OLE\odt\DDE_Rechnung_Artikel.ods"""";""""Tabelle1.A1"")"
UNGETESTET!
Ich hoffe, dass ich mich mit den Anführungszeichen innerhalb der Klammer nicht verzählt habe. Ansonsten müsste das jemand korrigieren.


Gruß
balu

DDE und Makro, das Calc-Datei öffnet

von TJF » Di, 22.12.2009 18:16

Hallo,

ich habe in einem Writer-Dokument die DDE-Verknüpfung einer Calc-Tabelle. Diese aktualisiert sich automatisch oder manuell einwandfrei. Weil ich diese zugehörige Calc-Tabelle gerne aus dem Writer-Dokument starten möchte, habe ich das nachfolgende Makro über einen Button (Formular-Steuerelemente) im Dokument zum Öffnen des Calc-Dokumentes eingebaut. Das Calc-Dokument öffnet sich auch wie gewünscht. In dem Calc-Dokument wird der Inhalt verändert und soll entsprechend im Writer-Dokument aktualisiert werden. Es sieht alles richtig aus.

Code: Alles auswählen

sub oeffne_dok

Dim Doc As Object
Dim Url As String
Dim Dummy()
Url = "file:///E:/Vorlagen/OLE/odt/DDE_Rechnung_Artikel.ods"
Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, Dummy())

end sub
Das Problem ist nun, dass auf diese Weise keine Aktualisierung mehr möglich ist! Als würde die DDE-Verknüpfung mit dem auf diese Weise geöffneten Dokument nicht mehr bestehen. Es funktioniert dagegen alles einwandfrei, wenn ich das Calc-Dokument "normal" vom Desktop oder aus dem Explorer öffne.

Es ist unerheblich, ob das Makro im Dokument selbst eingebettet ist oder nicht.

Dank und Gruß
Thomas

Nach oben