Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
884to888
884to888
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Serienbrief aus Excel Ausgabe einzelne pdfs

Serienbrief aus Excel Ausgabe einzelne pdfs
06.07.2007 10:22:51
Lutz
Hallo Leute,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Serienbrief aus Excel Ausgabe einzelne pdfs
09.07.2007 00:29:00
fcs
Hallo Lutz,
folgende Zeile anpassen, um auch den 2. Schlüssel im Dateinamen zu haben:

dsname = Verzeichnis & "\" & Praefix & _
.DataSource.DataFields(Schluessel1).Value& _
.DataSource.DataFields(Schluessel2).Value & ".doc"


Dabei dürfen folgende Zeichen im Dateinamen nicht enthalten sein:
Der Name kann mit Ausnahme der folgenden Zeichen alle Zeichen enthalten: Anführungszeichen ("), Apostroph ('), Schrägstrich (/), umgekehrter Schrägstrich (\), Doppelpunkt (:) und vertikale Linie (|).
Falls deine Daten diese Zeichen enthalten, dann muss du sie durch ein zulässiges Zeichen(z.B.; _) ersetzen.
Punkte sollte man auch möglichst vermeiden.
Die Ausgabe als PDF-Datei ist dann möglicherweise ein Problem der Druckereinstellungen, wobei ich nicht weiss wie dort der Dateiname als Parameter übergeben werden kann. Einige PDF-Drucker übernehmen standardmäßig den Worddateinamen als PDF-Dateinamen mit PDF statt SOC als Dateiendung.
Gruß
Franz

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige