Daten von Excel nach Word, Word schließt nicht
31.07.2007 19:48:55
Excel
ich bin gerade dabei Daten von Excel an eine Word- Vorlagendatei in Textmarken zu senden, diese dann auszudrucken und ohne zu speichern wieder zu schließen. Das funktioniert auch fast. Nur beim Schließen gibt es Probleme. Wenn Word geschlossen werden soll, erscheint die Meldung:
Diese Datei wird gerade von einer anderen Anwendung oder einem anderen Benutzer verwendet.
(C:\...\Vorlagen\Mormal.dot
Woran kann das liegen, dass Word nicht wieder geschlossen wird? Nachfolgend noch mein Testmakro, das ich hier aus der Recherche habe.
Option Explicit
Sub Eigenprovision_drucken()
Dim myWord As Object
'Fehlerroutine für die Objectabfrage aktivieren
On Error Resume Next
'Abfragen einer besthenden WORD-Instanz um wiederholtes starten zu verhindern
'9 = Word 2000, 10 = Word XP
Set myWord = GetObject("Word.Application.11")
If Err.Number 0 Then
'Fehlervariable leeren wenn Instanz noch nicht besteht
Err.Clear
'Zuweisung der Instanz
Set myWord = CreateObject("Word.Application.11")
'Instanz öffnen
'Um das ganze etwas im Hintergrund laufen zu lassen
'kann man den Status "wdWindowStateMinimize" verwenden
myWord.Visible = True: myWord.WindowState = wdWindowStateMinimize
Else
'Instanz besteht bereits
myWord.Activate
'Instanz in der Vordergrund bringen oder
'mit "wdWindowStateMinimize" im Hintergrund ausführen
myWord.Visible = True: myWord.WindowState = wdWindowStateMinimize
End If
'Hier muss der der Dateiname stehen der verwendet werden soll
'Es sollte aber eine Dokumentvorlage verwendet werden
'um keine Änderungen an den Textmarken beim einfügen zu verursachen
myWord.Application.Documents.Open ThisWorkbook.Path & "\Eigenprovisionsvereinbarung.dot"
'Die Textmarken "a1, a2, a3" müssen im Dokument bereits bestehen
'Dann werden nach dem öffnen des Dokuments die Werte von Tabelle1
'A1, B1 und C1 in die jeweiligen Textmarken geschrieben
myWord.ActiveDocument.Bookmarks("Nachname").Range.Text = Worksheets("Tabelle1").Range("A1")
myWord.ActiveDocument.Bookmarks("Strasse").Range.Text = Worksheets("Tabelle1").Range("B1")
myWord.ActiveDocument.Bookmarks("Ort").Range.Text = Worksheets("Tabelle1").Range("C1")
'Das aktive WordDokument drucken
myWord.ActiveDocument.PrintOut
'Dokument schliessen ohne speichern
myWord.ActiveDocument.Close savechanges:=False
'WORD-Instanz schliessen
myWord.Application.Quit (True)
'Variable leeren
Set myWord = Nothing
End Sub
Danke Euch schon mal im Voraus und Gruß,
Kasimir