Word Seriendruck aus Excel
Christoph
habe Probleme mit folgendem Makro. Es geht um einen Seriendruck aus einer Excel Tabelle aus. Die gewünschte Zeile wird ausgewählt, über einen Command Button wird dann das Makro gestartet und die Zeilennummer wird übergeben an das Word Makro. Darüber wird das Dokument mit dem richtigem Datensatz gedruckt und die Word Vorlage wird wieder geschlossen.
Nun das Problem: es bleibt immer eine Instanz von Excel im Taskmanager vorhanden. Auch wenn Excel komplett im Nachhinein geschlossen wurde. Im Projektexplorer vom VBA Editor sieht man dann noch das jeweilige Dokument. Dies kann auch mehrfach vorhanden sein, je nachdem wie oft man gedruckt hat.
Hat jemand eine Idee wodurch das verursacht wird und wie man dem entgegen gehen kann?
Durch "Set AppWord = Nothing" wird das Objekt ja nicht mehr referenziert. Da ja eine Excel Instanz geöffnet bleibt vermute ich dass es mit dem öffnen des Excel Dokuments aus der Seriendruck Word Datei zu tun hat.
Auf der Suche nach einer Lösung habe ich schon mymerge.DataSource.Close versucht, dies bringt aber keinerlei Änderung.
vielen vielen Dank für eure Hilfe
Makro in Excel:
Public Sub etikett_druck
Dim datensatz_nr As Integer
datensatz_nr = ActiveCell.Row
datensatz_nr = datensatz_nr - 1
Dim AppWord As Object
Dim sFile As String
On Error Resume Next
'Ettiketten öffnen
sFile = ThisWorkbook.Path & "\Vorlage - Dymo Etikett.doc"
Set AppWord = CreateObject("Word.Application")
AppWord.Documents.Open sFile
'Übergabe des Datensatzes
AppWord.Run "druck", datensatz_nr
AppWord.Quit
Set AppWord = Nothing
End Sub
Makro in Word:
Public Sub druck(datensatz_nr As Integer)
ActivePrinter = "DYMO LabelWriter 400"
Set mymerge = ActiveDocument.MailMerge
mymerge.OpenDataSource Name:=ActiveDocument.Path & "\Laborjournal.xls", _
ConfirmConversions:=True, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source= _
ActiveDocument.Path & \Laborjournal;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35" _
, SQLStatement:="SELECT * FROM `Laborjournal$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
mymerge.DataSource.FirstRecord = datensatz_nr
mymerge.DataSource.LastRecord = datensatz_nr
mymerge.Destination = wdSendToPrinter
mymerge.Execute
ActiveDocument.Save
End Sub