ich würde gerne aus einem Excelsheet mit ca 120 Datensätzen aus ca 35 Spalten einen Wordserienbrief starten, der als Ausgabe jede Seite einzeln als pdf abspeichert und wobei dabei der Dateiname aus zwei Feldnamen zusammengesetzt wird.
Folgenden script habe ich zusammengesucht, um zumindestens 1 Word-Datei pro Seite zu erhalten, wobei der zweite Feldname leider nicht übernommen wird. Ich find den Fehler einfach nicht. Aber, wie schon beschrieben, eigentlich sollte ein pdf rauskommen.
Private Const Verzeichnis = "entprechender Speicherpfad"
Private Const Praefix = "" 'Optional eine Zeichenfolge davor
Private Const Schluessel1 = "Schlüsselname1" 'Feldname des Felds, welches den Speichername enthält
Private Const Schluessel2 = "Schlüsselname2"
Sub JederDatensatzInEineEigenstaendigeDatei_pdf()
With ActiveDocument.MailMerge
If .MainDocumentType = wdNotAMergeDocument Then
MsgBox "Das aktive Dokument ist kein Seriendruckhauptdokument."
Exit Sub
End If
.DataSource.ActiveRecord = wdLastRecord
Anzahl = .DataSource.ActiveRecord
If Anzahl = 0 Then
MsgBox "Es wurden keine Datensätze gefunden."
Exit Sub
End If
flag = False
For Each x In .DataSource.DataFields
If x.Name = Schluessel1 & "_" & Schluessel2 Then
flag = True
Exit For
End If
Next
If flag = False Then
Q = Chr(34)
MsgBox "Das nominierte Feld " & Q & Schluessel1 & Q & _
" existiert nicht in der Datenquelle."
Exit Sub
End If
.Destination = wdSendToNewDocument
For i = 1 To Anzahl
.DataSource.ActiveRecord = i
dsname = Verzeichnis & "\" & Praefix & _
.DataSource.DataFields(Schluessel1).Value & ".doc"
.DataSource.FirstRecord = i
.DataSource.LastRecord = i
.Execute
ActiveDocument.Range.Find.Execute FindText:="^b", ReplaceWith:=""
ActiveDocument.SaveAs FileName:=dsname, AddToRecentFiles:=False
ActiveDocument.Close
Next i
.DataSource.FirstRecord = 1
End With
End Sub
Wer kann mir helfen?
Schöne Grüße
Lutz