drflorian
Goto Top

Word 2003 Serienbrief seperater Datensatzdruck fuer Drucker-Heftfunktion

Ich suche eine schnelle integrierte Loesung, bitte keine Softwarevorschlaege face-smile

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 face-smile


Gruss
Florian

Content-ID: 82479

Url: https://administrator.de/contentid/82479

Ausgedruckt am: 20.11.2024 um 06:11 Uhr

DrFlorian
DrFlorian 07.03.2008 um 09:58:52 Uhr
Goto Top
Vielleicht verirrt sich ja jemand mit VB Kenntnissen hierher.

Gibt es die Moeglichkeit
a) die Komplettanzahl der Seiten auszulesen und
b) eine Art Seitenzaehler (wenn man aus dem Serienbrief ein neues Dokument mit eingefuegten Daten erstellt zeigt er zB bei 3 Datensaetzen je 4 Seiten Seite 1 - Seite 2 - Seite 3 - Seite 4 - Seite 1 - Seite 2 usw also erstellt im Dokument 12 Gesamtseiten und unterteilt diese in 3 Saetze.

Vermutlich klingt das total wirr worauf ich hinaus will ist das man mithilfe der Gesamtseitenzahl / Seitenzaehler (4 bei 4 Seitiges Dokument, 3 bei 3 Seitiges) ebenso herausbekommt wieviele Datensaetze das komplette Dokument enthaelt und dementsprechend eine Schleife solange laufen lassen kann wie auch Dokumente da sind.

Hat folgenden Hintergrund, er druckt nun geheftete Saetze jedoch druckt er bei 2 Saetzen 2 vollstaendig und danach nach Lust und laune quer beet.

Ich hoffe da ist im entferntesten ein logischer Ansatz zu erkennen >)


Gruss
Florian
DAC324
DAC324 07.04.2008 um 14:10:18 Uhr
Goto Top
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
kirchenworder
kirchenworder 01.03.2011 um 13:45:16 Uhr
Goto Top
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
christian2
christian2 08.06.2011 um 15:01:11 Uhr
Goto Top
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.

Bei mir geht leider der Druckdialog nicht auf. Es wird immer direkt gedruckt. Kann mir jemand einen Tipp gegen?
kirchenworder
kirchenworder 08.06.2011 um 19:09:07 Uhr
Goto Top
Hast du die änderung im makro gemacht, wie ichs oben beschrieben habe?
christian2
christian2 09.06.2011 um 12:47:08 Uhr
Goto Top
Zitat von @kirchenworder:
Hast du die änderung im makro gemacht, wie ichs oben beschrieben habe?

Ja, ich hab Copy&Past gemacht.
Hilft zur Diagnose vielleicht mein Testdokument? http://www.balticnerds.de/chris/Dok1.docm
kirchenworder
kirchenworder 09.06.2011 um 16:02:32 Uhr
Goto Top
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?
christian2
christian2 27.06.2011 um 12:11:17 Uhr
Goto Top
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?
kyokie
kyokie 20.12.2017 um 16:24:54 Uhr
Goto Top
Hallo, vielen Dank für das Makro, funktioniert ....aber der Serienbrief selber wird nicht mit den Adressen befüllt, was mache ich falsch.