Serienbrief und Makro

Ich habe folgendes Problem ich habe einen Serienbrief erstellt und möchte dass Word (2003) erst die Datenliste für den Serienbreif öffnet und dann danach ein Makro automatisch direkt danach ausführt.

Danke für Eure hilfe.

Mit freundlichen Nils

Ich habe folgendes Problem ich habe einen Serienbrief erstellt
und möchte dass Word (2003) erst die Datenliste für den
Serienbreif öffnet und dann danach ein Makro automatisch
direkt danach ausführt.

Hallo Nils,

beschreib das bitte genauer.
Automatische Makros brauchen eines von den von Word festgelegten
Ereignissen um automatisch zu starten.

Als ein Beispiel ist das Open-Ereignis festgelgt, es wird
ausgelöst wenn du die Dok öffnest.
Schreib mal in das Modul „ThisDocument“ den Code
Private Sub Document_Open()
msgbox „huhu“
End Sub

Die MsgBox kommt jedesmal wenn du die Dok öffnest, also
brauchst du nur Code der automatisch ablaufen soll in die obige
Prozedur schreiben.

Du möchtest aber prinzipiell so einen Prozedurkopf:
Private Sub MailMergeDataSource_Open()

und den gibt es nicht in Word. Öffnen der Datendatei löst kein
auswertbares Ereignis in Vba aus.
Über Umwege, anderes Vorgehen kann man aber ähnliches erreichen.

a) du könntest das "Zusammenführen" des Serienbriefes mit Vba
 machen und nicht mit Klick(s) "oben" in Word. Entsprechender
 Vba-Code ist nachstehend.
 In der Codezeile unter .Execute... kannst du mit Call...
 dein Makro starten oder den Makrocode da reinschreiben.
 (.Execute öffnet die Excelmappe falls Excel die datenquelle.

b) Wenn man wie ich bei meinen Kurztests ausgewählt hat daß
 alle Serienbriefe dann in einem Dokument stehen dann
 wird dieses Dokument zum ActiveDocument.

 Dieser Dokumentswechsel ruft in dem Klassenmodul von mir 
 automatisch die Prozedur:
 Private Sub App\_DocumentChange()
 MsgBox "bin in Dokument: " & ActiveDocument.Name
 End Sub
 auf. Da kannste auch deinen Code reinknallen.

c) Da gab's noch 'ne Möglichkeit, grad vergessen :smile:

Lass dich nicht erschrecken von Klassenmodul o.ä., du mußt es ja
nur anwenden.
Und frag gezielt nach und wie gesagt plauder mal wie du dir da den
Ablauf genau vorstellst. Welcher Art deine Datenquelle ist, usw.

Gruß
Reinhard

Sub tt()
With ActiveDocument.MailMerge
 .Destination = wdSendToNewDocument
 .MailAsAttachment = False
 .MailAddressFieldName = ""
 .MailSubject = ""
 .SuppressBlankLines = True
 With .DataSource
 .FirstRecord = wdDefaultFirstRecord
 .LastRecord = wdDefaultLastRecord
 End With
 .Execute Pause:=True
End With
End Sub