Serienbrief: Probleme mit statischem Text

Hi,

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

prinzerkan

Hi,

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

  1. 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.
  2. Du erstellst eine Seriendruckvorlage für den Katalog

Das Makro führt dann folgende Aktionen aus:

  1. Erstelle das Seriendruckdokument für den 1. Datensatz (Brief)
  2. Neues Dokument erstellen auf basis der Katalog.dot
  3. Rechnungsdaten per Seriendruck als katalog in neues Dokument ausgeben
  4. Tabelle/Text mit den Rechnungsdaten markieren und kopieren
  5. Kopierte Daten im Serienbrief einfügen
  6. 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

Vielen Dank :smile: Ich werd mich daran mal versuchen!