Word 2003 Serienbrief seperater Datensatzdruck fuer Drucker-Heftfunktion
Ich suche eine schnelle integrierte Loesung, bitte keine Softwarevorschlaege
Moin moin,
eine Kollegin von mir moechte gerne Ihre Serienbriefe direkt beim drucken geheftet bekommen, soweit kein groesseres Problem jedoch sendet Word 2003 den Serienbrief als eine grosse Datei an den Drucker, der dann wiederrum ALLE Seiten heftet (bzw die maximale Seitenanzahl fuer einen Heftvorgang).
Was ich bereits gefunden und versucht habe ist folgendes Macro:
Dim i As Long
With ActiveDocument
For i = 1 To .Sections.Count
.PrintOut Range:=wdPrintFromTo, From:="s" & i, To:="s" & i
Next i
End With
Das wird einfach nachdem die Datensaetze in ein neues Dokument eingesetzt worden sind ausgefuehrt und soll laut diversen Foren wunder bewirken. Zumindest muss ich zugeben das ich ueberrascht war denn der Drucker interpretierte das ganze so:
Seite 1 --> Seite2+Seite3 (geheftet) --> Seite 4 --> Seite 1 --> Seite2+Seite3 (geheftet) --> Seite 4.
Vielleicht kann mir jemand erlauetern was genau das Macro ueberhaupt bewirkt denn Ahnung habe ich von Macros ueberhaupt nicht und das war nur 1:1 aus einem Forum kopiert.
Sicherlich habe ich wichtige Informationen vergessen, bitte fragt einfach
Gruss
Florian
Moin moin,
eine Kollegin von mir moechte gerne Ihre Serienbriefe direkt beim drucken geheftet bekommen, soweit kein groesseres Problem jedoch sendet Word 2003 den Serienbrief als eine grosse Datei an den Drucker, der dann wiederrum ALLE Seiten heftet (bzw die maximale Seitenanzahl fuer einen Heftvorgang).
Was ich bereits gefunden und versucht habe ist folgendes Macro:
Dim i As Long
With ActiveDocument
For i = 1 To .Sections.Count
.PrintOut Range:=wdPrintFromTo, From:="s" & i, To:="s" & i
Next i
End With
Das wird einfach nachdem die Datensaetze in ein neues Dokument eingesetzt worden sind ausgefuehrt und soll laut diversen Foren wunder bewirken. Zumindest muss ich zugeben das ich ueberrascht war denn der Drucker interpretierte das ganze so:
Seite 1 --> Seite2+Seite3 (geheftet) --> Seite 4 --> Seite 1 --> Seite2+Seite3 (geheftet) --> Seite 4.
Vielleicht kann mir jemand erlauetern was genau das Macro ueberhaupt bewirkt denn Ahnung habe ich von Macros ueberhaupt nicht und das war nur 1:1 aus einem Forum kopiert.
Sicherlich habe ich wichtige Informationen vergessen, bitte fragt einfach
Gruss
Florian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82479
Url: https://administrator.de/contentid/82479
Ausgedruckt am: 20.11.2024 um 06:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo Florian,
vor einem ähnlichen Problem stand ich auch mal. Mit folgendem Makro druckt Word alle Serienbriefe einzeln aus, anstatt sie in eine große Datei zu packen und erst dann zum Drucker zu schicken:
Sub PrintOut()
'
' Prints every record of a mail merge document as a separate
' print job
' Macro created 31.03.2008 by groet
'
On Error GoTo Fehler
Application.Visible = False
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = 1
With Dialogs(wdDialogFilePrint)
x = .Show
End With
If x = -1 Then 'OK button pressed
.DataSource.ActiveRecord = wdNextRecord 'first record has already been printed
Do
With .DataSource
.FirstRecord = .ActiveRecord
.LastRecord = .ActiveRecord
End With
Application.PrintOut
If .DataSource.ActiveRecord < .DataSource.RecordCount Then
.DataSource.ActiveRecord = wdNextRecord
Else
Exit Do
End If
Loop
End If
End With
Fehler:
Application.Visible = True
End Sub
Beim Aufruf dieses Makros erscheint erst mal der Standard-Druckerauswahldialog, damit man notwendige Einstellungen am Drucker vornehmen kann (bei Dir wäre das z.B. die Heftfunktion, bei mir sollte die erste Seite auf ein anderes Papier gedruckt werden).
Anschließend wird für jeden Empfänger des Serienbriefs ein separater Druckjob erstellt und mit den getroffenen Einstellungen an den Drucker geschickt.
Dieses Makro ist sicher noch nicht perfekt.
Man könnte z.B. auf den Druckerdialog verzichten und stattdessen alle Einstellungen vom Makro automatisch erledigen lassen.
Aber vielleicht hilft's ja doch schon ein bißchen weiter.
EDIT: Abfrage von "OK" und "Abbrechen" Schaltfläche im Druckdialog eingebaut. Makro wird nur ausgeführt, wenn Nutzer "OK" angeklickt hat.
Grüße
DAC324
vor einem ähnlichen Problem stand ich auch mal. Mit folgendem Makro druckt Word alle Serienbriefe einzeln aus, anstatt sie in eine große Datei zu packen und erst dann zum Drucker zu schicken:
Sub PrintOut()
'
' Prints every record of a mail merge document as a separate
' print job
' Macro created 31.03.2008 by groet
'
On Error GoTo Fehler
Application.Visible = False
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = 1
With Dialogs(wdDialogFilePrint)
x = .Show
End With
If x = -1 Then 'OK button pressed
.DataSource.ActiveRecord = wdNextRecord 'first record has already been printed
Do
With .DataSource
.FirstRecord = .ActiveRecord
.LastRecord = .ActiveRecord
End With
Application.PrintOut
If .DataSource.ActiveRecord < .DataSource.RecordCount Then
.DataSource.ActiveRecord = wdNextRecord
Else
Exit Do
End If
Loop
End If
End With
Fehler:
Application.Visible = True
End Sub
Beim Aufruf dieses Makros erscheint erst mal der Standard-Druckerauswahldialog, damit man notwendige Einstellungen am Drucker vornehmen kann (bei Dir wäre das z.B. die Heftfunktion, bei mir sollte die erste Seite auf ein anderes Papier gedruckt werden).
Anschließend wird für jeden Empfänger des Serienbriefs ein separater Druckjob erstellt und mit den getroffenen Einstellungen an den Drucker geschickt.
Dieses Makro ist sicher noch nicht perfekt.
Man könnte z.B. auf den Druckerdialog verzichten und stattdessen alle Einstellungen vom Makro automatisch erledigen lassen.
Aber vielleicht hilft's ja doch schon ein bißchen weiter.
EDIT: Abfrage von "OK" und "Abbrechen" Schaltfläche im Druckdialog eingebaut. Makro wird nur ausgeführt, wenn Nutzer "OK" angeklickt hat.
Grüße
DAC324
Hallo an alle im Forum und vielen Dank für die Hilfe,
ich hatte dasselbe Problem, aber nun gelöst.
Erweiterung:
in word 2010 habe ich das Makro auf eine Schaltfläche gelegt. Damit habe ich es immer bei Serienbriefen zur Verfügung.
Dies setzt eine Ergänzung voraus:
alt:
Application.Visible = False
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = 1
neu:
Application.Visible = False
x=0
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = 1
Ansonsten kommt der Druck-Dialog nicht
Liebe grüße
ich hatte dasselbe Problem, aber nun gelöst.
Erweiterung:
in word 2010 habe ich das Makro auf eine Schaltfläche gelegt. Damit habe ich es immer bei Serienbriefen zur Verfügung.
Dies setzt eine Ergänzung voraus:
alt:
Application.Visible = False
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = 1
neu:
Application.Visible = False
x=0
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = 1
Ansonsten kommt der Druck-Dialog nicht
Liebe grüße
Zitat von @kirchenworder:
in word 2010 habe ich das Makro auf eine Schaltfläche gelegt. Damit habe ich es immer bei Serienbriefen zur Verfügung.
in word 2010 habe ich das Makro auf eine Schaltfläche gelegt. Damit habe ich es immer bei Serienbriefen zur Verfügung.
Bei mir geht leider der Druckdialog nicht auf. Es wird immer direkt gedruckt. Kann mir jemand einen Tipp gegen?
Ja, ich hab Copy&Past gemacht.
Hilft zur Diagnose vielleicht mein Testdokument? http://www.balticnerds.de/chris/Dok1.docm
Hilft zur Diagnose vielleicht mein Testdokument? http://www.balticnerds.de/chris/Dok1.docm
Danke für dein Testdokument.
Ich sehe das problem noch nicht:
Das Makro funktioniert bei mir richtig.
Deshalb noch mal rückfragen:
1. In deinem testdokument waren keine Serienbrief felder definiert, hast du bei deinem Dokument denn Serienbrieffelder und die Verknüpfungen?
2. Wie hast du den Druck gestartet?
Ich sehe das problem noch nicht:
Das Makro funktioniert bei mir richtig.
Deshalb noch mal rückfragen:
1. In deinem testdokument waren keine Serienbrief felder definiert, hast du bei deinem Dokument denn Serienbrieffelder und die Verknüpfungen?
2. Wie hast du den Druck gestartet?
Also ich kann Erfolg melden. Ich habe es mit einem Serienbriefdokument probiert und da ging es dann anstandslos. Danke!
Mir sind bei der Arbeit mit dem Makro zwei Dinge aufgefallen, an denen ich mich etwas störe.
1. Wenn man im Druckdialog einen Seitenbereich definiert, der gedruckt werden soll (z.B. Seite 2-10), so mach er dies beim ersten Druck auch, aber alle folgenden werden vollständig gedruckt (z.B. Seite 1-14).
2. Man kann nicht angeben, welche Serienbriefe gedruckt werden sollen. Im Menü "Sendungen" kann man, wenn man den Druck von dort auslöst, angeben welche Datensätze gedruckt werden sollen.
Ob man das Makro um diese Funktionalitäten erweitern kann? Ich schaue selber, aber vielleicht hast du/ jemand eine zündende Idee parat?
Mir sind bei der Arbeit mit dem Makro zwei Dinge aufgefallen, an denen ich mich etwas störe.
1. Wenn man im Druckdialog einen Seitenbereich definiert, der gedruckt werden soll (z.B. Seite 2-10), so mach er dies beim ersten Druck auch, aber alle folgenden werden vollständig gedruckt (z.B. Seite 1-14).
2. Man kann nicht angeben, welche Serienbriefe gedruckt werden sollen. Im Menü "Sendungen" kann man, wenn man den Druck von dort auslöst, angeben welche Datensätze gedruckt werden sollen.
Ob man das Makro um diese Funktionalitäten erweitern kann? Ich schaue selber, aber vielleicht hast du/ jemand eine zündende Idee parat?