Steuern eines Seriendruckes aus Excel mit Druck
Markus
Mein Problem:
Datensätze (Zeilen) aus dem Quelldokument Laeufer1.xls sollen per Makro ausführender Schaltfläche mit Hilfe des Word-Dokumentes Startnummer1.dot ausgedruckt werden. Ein Makro habe ich mir aus den Foren hier zusammengebastelt das mit der Schaltfläche habe ich auch hinbekommen.
Im Moment sieht es so aus:
Nach Ausführen des Makros öffnet sich Word mit einem Dokument1 sowie darüber gelagert ein Fenster in dem man die Datentabelle in Excel mit ok bestätigen muss. Im Dokument1 sind die Datenfelder mit den Werten der letzten Excel-Zeile gefüllt.
Nach dem Bestätigen hat man zwei offene Word-Dokumente:
1. Ein Dokument1 welches die Datenfelder anzeigt (unausgefüllt)
2. Ein Serienbriefe1 in welchem für jeden Datensatz die Daten auf eine Seite geschrieben sind so wie es gewünscht war.
Was noch nicht funktioniert bzw. stört:
Das Dokument Serienbriefe1 soll gleich auch noch gedruckt werden
Beide Dokumente (Dokumet1 und Serienbriefe1) sollen entweder gar nicht erst sichtbar sein oder sofort nach dem Druck geschlossen werden, so dass man gleich wieder die Excel Laeufer1.xls offen vor sich hat und weiter eintragen kann.
Das i-Tüpfelchen wäre noch ein Funktion, die es möglich machen könnte, dass beim nächsten Druck die bereits gedruckten Zeilen ignoriert werden.
Hier noch das Makro:
Public Sub StartnummerErstellen1()
' WordSeriendruck Makro
' Tastenkombination: Strg+d
' Erstellen eines neuen Seriendruck-Dokuments aus Excel
' 1. In word ein Template (hier Startnummer.dot) erstellen mit den Serien-
' Druckfeldern)
' 2. Alle benötigten Seriendruckdaten in Excel in ein eigenes Worksheet
' kopieren und speichern (hier Laeufer.xls)
' 3. Dieses Makro aus Excel aufrufen'
Dim WordApp As Object
Set WordApp = CreateObject("Word.application")
With WordApp
.Application.Visible = True
.Application.Documents.Add Template:= _
"C:\Startnummer\Startnummer1.dot" _
, NewTemplate:=False, DocumentType:=0
Set myMerge = WordApp.ActiveDocument.MailMerge
If myMerge.State = wdMainAndSourceAndHeader Or _
myMerge.State = wdMainAndDataSource Then
With myMerge.DataSource
myMerge.MainDocumentType = wdFormLetters
myMerge.OpenDataSource _
Name:="C:\Startnummer\Laeufer1.xls", _
LinkToSource:=True, AddToRecentFiles:=False, _
Connection:="Tabelle1"
End With
myMerge.Execute
End If
End With
' Verwendete Objects wieder freigeben
Set WordApp = Nothing
End Sub
Hier noch die beiden Dateien:Laeufer1.xls
https://www.herber.de/bbs/user/74828.xls
Startnummer1.dot - gezippt
https://www.herber.de/bbs/user/74829.zip
Vielen Dank im voraus
Markus