ActiveDocument referenziert linkendes Dokument

20/07/2008 - 08:04 von Henning von Bonin | Report spam
Hallo NG

Ein von mir z.Zt. nicht lösbares Problem:

In einer Datei dok1.doc (bzw. dok1.docm) steht das Makro
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub Document_Open()
With ActiveDocument
'Schreibe in Tabelle1 Zeile2 Spalte3 "Text"
End With
End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Das funktioniert wie erwartet.

Dann habe ich eine zweite Datei dok2.doc (bzw. dok2.docx) mit einem Link auf
dok1.doc.
Diese Datei hat auch eine Tabelle. ActiveDocument in dok1.doc bezieht sich
bei Öffnung durch den Link in dok2.doc nun aber auf die Tabelle in dok2.doc.
Dort wird also geschrieben. In dok1.doc geschieht nichts. Logisch ist das -
aber unerwünscht.

Die Ersetzung von "ActiveDocument" mit "ThisDocument" führt in die Irre:
letzteres referenziert die Dokumentvorlage.

Wie kriege ich hin, dass in die zu öffnende Datei geschrieben wird -
unabhàngig davon, wie die Datei geöffnet wird?

Vielen herzlichen Dank für Antworten

Henning
 

Lesen sie die antworten

#1 Lisa
20/07/2008 - 12:35 | Warnen spam
On 20 Jul., 08:04, "Henning von Bonin" wrote:
Hallo NG

Ein von mir z.Zt. nicht lösbares Problem:

In einer Datei dok1.doc (bzw. dok1.docm) steht das Makro
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub Document_Open()
With ActiveDocument
'Schreibe in Tabelle1 Zeile2 Spalte3 "Text"
End With
End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++
Das funktioniert wie erwartet.

Dann habe ich eine zweite Datei dok2.doc (bzw. dok2.docx) mit einem Link auf
dok1.doc.
Diese Datei hat auch eine Tabelle. ActiveDocument in dok1.doc bezieht sich
bei Öffnung durch den Link in dok2.doc nun aber auf die Tabelle in dok2.doc.
Dort wird also geschrieben. In dok1.doc geschieht nichts. Logisch ist das -
aber unerwünscht.

Die Ersetzung von "ActiveDocument" mit "ThisDocument" führt in die Irre:
letzteres referenziert die Dokumentvorlage.

Wie kriege ich hin, dass in die zu öffnende Datei geschrieben wird -
unabhàngig davon, wie die Datei geöffnet wird?

Vielen herzlichen Dank für Antworten

Henning



Hallo Henning,

ich habe das gerade nachgebaut (in Word 2002/XP SP 3), und es
funktioniert wie gewünscht. Beim Öffnen von Dok1 durch den Link in
Dok2 wird das Document_Open von Dok1 ausgeführt und schreibt in die
Tabelle von Dok1. Wenn es bei Dir nicht funktioniert, tippe ich
darauf, dass Du die Tabelle mit dem Selection-Object bearbeitest?

Probier mal, im Document_Open von Dok1 dies hier:
_____
Private Sub Document_Open()

With ActiveDocument
.Tables(1).Rows(2).Cells(3).Range.Text = "blabla"
'Schreibe in Tabelle1 Zeile2 Spalte3 "Text"
End With

End Sub
____
Hier wird der Range in Dok1 explizit angesprochen ohne die Selection.
Wenn das funktioniert, ist die Ursache gefunden.

Gruß
Lisa
_____
http://www.schreibbuero-richter.de/vba.html

Ähnliche fragen