Serienbrief als EIN PDF speichern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Serienbrief als EIN PDF speichern
von: Benny
Geschrieben am: 17.06.2015 10:25:59

Hallo,
gibt es eine Möglichkeit einen Serienbrief, der mit den Datensätzen einer Exceltabelle erstellt wurde, als EIN "gemeinsames" Pdf zu speichern ohne den Umweg über einen PDF-Drucker zu wählen. Im Netz habe ich viele Möglichkeiten gefunden für jeden Datensatz ein eigenes PDF zu erstellen, aber ich möchte ein PDF mit allen Seiten (bzw.- Datensätzen).
Vielen Dank
Benny

Bild

Betrifft: AW: Serienbrief als EIN PDF speichern
von: fcs
Geschrieben am: 17.06.2015 11:44:15
Hallo Benny,
du kannst in Word alle Serienbrief-Dokumente in ein neues Worddokument ausgeben.
Dieses neue Worddokument kannst du dann normal drucken und via "Speichern unter" als PDF-speichern oder ggf. auch als PDF drucken.
Gruß
Franz

Bild

Betrifft: AW: Serienbrief als EIN PDF speichern
von: Benny
Geschrieben am: 17.06.2015 12:00:25
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

Bild

Betrifft: AW: Serienbrief als EIN PDF speichern
von: fcs
Geschrieben am: 17.06.2015 16:20:31
Hallo Benny,
du kannst in Word seit Word 2007 eine Worddatei direkt als PDF speichern. bzw. exportieren.
Den PDF-Dateinamen muss du dir halt irgendwie zusammenbauen.
Gruß
Franz

 'Serienbrief in eine neue Worddatei ausgeben
  With dok.MailMerge
    .Destination = wdSendToNewDocument
    .SuppressBlankLines = True
    With .DataSource
      .FirstRecord = beginnDS
      .LastRecord = endDS
    End With
    .Execute Pause:=False
  End With
  'Serienbriefe als PDF speichern
  wdApp.ActiveDocument.ExportAsFixedFormat OutputFileName:= _
      "D:\Test\Briefe " & Format(Now, "YYYY-MM-DD hhmmss") & ".pdf", _
      ExportFormat:=wdExportFormatPDF, _
      OpenAfterExport:=True, _
      OptimizeFor:=wdExportOptimizeForPrint, _
      Range:=wdExportAllDocument, From:=1, To:=1, _
      Item:=wdExportDocumentContent, _
      IncludeDocProps:=True, KeepIRM:=True, _
      CreateBookmarks:=wdExportCreateNoBookmarks, _
      DocStructureTags:=True, BitmapMissingFonts:=True, _
      UseISO19005_1:=True
  wdApp.ActiveDocument.Close savechanges:=False 'erzeugte Worddatei schliessen?????


Bild

Betrifft: AW: Serienbrief als EIN PDF speichern
von: Benny
Geschrieben am: 17.06.2015 16:25:27
Hallo Franz,
der PDF-Export über die .ExportAsFixedFormat ist mir bekannt. WIe ich den Dateinamen zusammenbastle ist mir auch klar.
Aber ich verstehe einfach nicht, wie ich die Exportfunktion auf einen Serienbrief mit den Datensätzen von 1 bis n anwenden kann, so dass er mir, wie im Druck,alle Serifenbrief für die gewünschten Datensätze in ein PDF exportiert. Wenn ich die Funktion benutze, dann erhalte ich immer nur ein PDF-Dokument mit dem ersten Datensatz.
Viele Grüße
Benny

Bild

Betrifft: AW: Serienbrief als EIN PDF speichern
von: fcs
Geschrieben am: 17.06.2015 17:22:44
Hallo Benny,
ich hab das Makro direkt unter Word 2010 getetstet und da wird mit dem Start des akros zuerst ein neues Worddokument mit allen Briefen (z.B. Empfänger 1 bis 5) erstellt und dann wird diese Datei als PDF espeichert und mit den gewählten Parametern auch im Acrobat mit 5 Seiten angezeigt.
Nach meiner Erfahrung funktioniert es nicht, die Quelle in Word zuzuweisen, wenn die Quelle in Excel geöffnet ist. evtl. musst du da noch was anpassen.
Evtl. gibt es auch ein Problem, wenn man versucht das ganze von Excel zu starten. Da ist mir aber nichts bekannt.
Ich hab auch keine Lust, das alles nachzubauen. Dann müsstest du mal alles was du hast (Word- und Exceldateien in abgespeckter/anonymer Form) in eine ZIP-Datei packen und hier hochladen.
Gruß
Franz

Bild

Betrifft: AW: Serienbrief als EIN PDF speichern
von: Benny
Geschrieben am: 17.06.2015 18:17:26
Hallo Franz,
mea maxima culpa. Vielen Dank, es klappt wie du es gesagt hast.
Ich hatte vor der Erstellung des neuen Dokumentes die Anpassung der Datensätz vergessen.
Super, so bin ich vom PDF-Drucker unabhängig und kann den Dateinamen direkt übergeben.
Tausend Dank auch/vor allem für deine Gedult mit mir:)
Viele Grüße
Benny

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Serienbrief als EIN PDF speichern"