ich habe mit Hilfe folgender Anleitung http://mypage.bluewin.ch/reprobst/WordFAQ/MMCateg.ht… einen Serienbrief-katalog erstellt. Soweit hat auch alles funktioniert. Nur dann kam der Schock Shock Es ist nicht möglich statischen Text hinzuzufügen ohne das dieser sich x-mal wiederholt?!? Das ist aber logischerweise Bestandteil meines Serienbriefes (Ich weiß ist ein Katalog, bringt mir aber leider nicht viel)
Nun wollte ich fragen ob jemand eine Möglichkeit kennt diesen Umstand zu umgehen oder auch jemand eine ganz andere Lösungsmöglichkeit kennt?
(Erstellt werden soll eine typische Rechnung, welche neben den kategoriesortieren Daten noch andere Seriendruckfelder und statischen Text enthält.)
Daten:
SQL-Server 2005 (Sicht) -> Word 2003
Ich wäre für jegliche Hilfe dankbar!! Das Zeug mach micht ganz schön fertig Wink
Nun wollte ich fragen ob jemand eine Möglichkeit kennt diesen
Umstand zu umgehen oder auch jemand eine ganz andere
Lösungsmöglichkeit kennt?
(Erstellt werden soll eine typische Rechnung, welche neben den
kategoriesortieren Daten noch andere Seriendruckfelder und
statischen Text enthält.)
Daten:
SQL-Server 2005 (Sicht) -> Word 2003
hallo prinzerkan,
man kann 2 Sorten Seriendruck in Word nicht eifach mischen.
Ein Ausweg sind zwei Serienbrief-Dokumente die man per Makro „vereint“.
Wie kompliziert das Ganze wird hängt davon ab ob die DatenQuelle immer die Daten für genau einen Brief/eine Rechnung liefert oder ob die Briefe für mehrere Briefe/Rechnungen hintereinander weg gedruckt werden sollen.
Prinzipiell
Du erstellst eine Seriendruckvorlage, die den Statischen Text und die „anderen“ Seriendruckfelder enthält.
In dieser Vorlage wird auch das Makro eingerichtet, dass den Gesamtseriendruck steuert.
Du erstellst eine Seriendruckvorlage für den Katalog
Das Makro führt dann folgende Aktionen aus:
Erstelle das Seriendruckdokument für den 1. Datensatz (Brief)
Neues Dokument erstellen auf basis der Katalog.dot
Rechnungsdaten per Seriendruck als katalog in neues Dokument ausgeben
Tabelle/Text mit den Rechnungsdaten markieren und kopieren
Kopierte Daten im Serienbrief einfügen
Das neue Katalog-Dok und den Katalog-Seriendruck ohne speichern wieder wieder schließen
Die Datenquellen (können theortisch identisch sein) werden bei mir einmalig in den beiden Dot-Dateien festgelegt. Die SQL-Abfrage liefert dabei exakt die für eine Rechnng zu druckenden Daten. Falls die SQL-Abfrage die Daten für mehrere Rechnungen beinhalt, dann wird das Makro natürlich komplizierer, da irgendwie immer nur dann ein Seriendruck des Briefes erzeugt werden darf, wenn der Empfänger wechselt. Im Katalog-Druck dürfen nur die Sätze gedruckt werden, die zum Rechnungsempfänger gehören. Das Ganze muss dann in einer Schleife für alle Empfänger abgearbeitet werden.
Nachfolgend der Code für die einfache Version
Viel Spass
Franz
Sub SerienbriefSatz1()
'
' SerienbriefSatz1 Makro
' Makro aufgezeichnet/estellt am 24.07.07 von Franz
'
Dim docBriefVorlage As Document, docBrief As Document
Dim dotKatalog As Document, docKatalog As Document
Set docBriefVorlage = ThisDocument
strKatalog = "C:\Programme\Microsoft Office\Vorlagen\TestKatalog.dot"
'Sereinbrief mit 1. Datensatz erstellen
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:=True
End With
Set docBrief = ActiveDocument
'In meinem Muster werden die Daten am Ende angefügt
Selection.EndKey Unit:=wdStory
'den beim Seriendruck generierten Seiten/Abschnittswechsel am Dokumentende löschen
Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1
'Neues Katalog-Dokument erstellen
Set dotKatalog = Application.Documents.Add(Template:=strKatalog)
'Seriendruck-Katalog
With dotKatalog.MailMerge
.Destination = wdSendToNewDocument
.Execute
End With
Set docSerieKatalog = ActiveDocument
'Katalog-Daten im Seriendruckdokument markieren und kopieren
docSerieKatalog.Tables(1).Select
Selection.Copy
'Daten im Serienbrief einfügen
docBrief.Activate
Selection.Paste
'Katalog-Dateien ohne speichern schließen
docSerieKatalog.Close savechanges:=False
dotKatalog.Close savechanges:=False
'Word wieder aktivieren
Application.Activate
End Sub