AW: Serienbrief als EIN PDF speichern
17.06.2015 12:00:25
Benny
Hallo Franz,
das Problem ist, dass ich nicht verstehe, wie ich alle Datensätze in ein PDF abspeichern kann ohne einen Pdf-Drucker zu benutzen. Ich möchte bei 30 Datensätzen ein pdf mit 30 Seiten erzeugen.
Der Umweg über den PDF ist mir zu umständlich, da ich dann nicht den Dateinamen und Pfad übergeben kann.
Bisher sieht mein Code in etwa so aus (die Variablen sind passend gesetzt):
Set wdApp = CreateObject("Word.Application")
wdApp.Visible = True
'wdApp.ScreenUpdating = False
'wdApp.DisplayAlerts = False
'Serienbrief öffnen
'MsgBox pfadSerienbrief & serienbrief
Set dok = wdApp.Documents.Open(pfadSerienbrief & dateinameSerienbrief)
dok.MailMerge.MainDocumentType = 0
dok.MailMerge.MainDocumentType = wdFormLetters
'Serienbrief aufrufen
dok.MailMerge.OpenDataSource name:=pfadTabelle & ActiveWorkbook.name, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=E:\Vorlage.xlsm;Mode=Read; _
Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=35;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global" _
, SQLStatement:="SELECT * FROM " & from, SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
If endDS > beginnDS Then
wdApp.ActivePrinter = "PDF-Creator 2.12"
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument 'wdSendToPrinter
.SuppressBlankLines = True
With .DataSource
.FirstRecord = beginnDS
.LastRecord = endDS
End With
.Execute 'Pause:=False
End With
Als Pdf-Drucken über den Drucker klappt es, aber dann muss ich im Druckdialog immer Dateinamen und Pfad übergeben.
Dies möchte ich automatieren.
Viele Grüße und vielen Dank
Benny