(25.03.2021, 09:28)RPP63 schrieb: Noch ein Versuch:
Ich habe meinen Test mal in ein Zip-Archiv gepackt.
► Entpacke GetObject.zip auf einen Datenträger
► Öffne GetObject.xlsm
► Starte eins der beiden Makros
Klappt es damit (öffnet sich die Word-Datei)?
Also, vielen Dank nochmal für die Mühe. Merkwürdigerweise funktioniert das jetzt mit Deiner Testdatei, sogar mit beiden Codes. Vielleicht ist meine Datei irgendwo defekt, vermute fast, dass es was mit der Serienbrieffunktion zu tun hat. Ich werde einfach mit dem funktinierendem Beispieldateien arbeiten.
Da nun beide Codes richtig starten, habe ich aber einen Unterschied festgestellt. Und zwar beim zweiten Code:
Code:
Sub StarteWord()
Dim objWordApp As Object
Dim strPfad As String
strPfad = ThisWorkbook.Path & "\Unterordner\Anschreiben1.docx"
Debug.Print Dir(strPfad)
Set objWordApp = CreateObject("Word.application")
With objWordApp
.Application.Visible = True
.Application.Documents.Open (strPfad)
End With
Set objWordApp = Nothing
End Sub
Hier kann man dann im geöffneten Dokument nicht die Serienbrieffunktion benutzen.
Beim Code 1 startet das Dokument und man kann die Serienbrieffunktion verwenden:
Code:
Sub Get_Word()
Dim wdAnw As Object
Dim wdDok As Object
Set wdDok = GetObject(ThisWorkbook.Path & "\Unterordner\Anschreiben1.docx")
Set wdAnw = wdDok.Parent
wdAnw.Visible = True
wdAnw.WindowState = 0 '0 = Normal; 1 = Maximized; 2 = Minimized
wdAnw.Activate
'wdDok.Close
'wdAnw.Quit
Set wdAnw = Nothing
Set wdDok = Nothing
End Sub
Ok, das Ursprungsproblem ist gelöst. Schon mal vielen Dank dafür, wobei der Grund mir Schleierhaft ist.
Der o.g. Code fragt beim Öffnen des Worddokumentes immer ab, ob er die Daten aus Excel übernehmen darf. Diese Abfrage würde ich noch gern verhindern, gerade weil die manchmal im Hintergrund geöffnet wird und man erstmal dahin muß, um diese zu bestätigen.
Gruß
Roy
P.S. Ich habe mal die Testdatei mit Serienfunktion ergänzt und als Testdatei angehängt.