Serienbrief als PDF speichern

Bild

Betrifft: Serienbrief als PDF speichern
von: Meike
Geschrieben am: 31.08.2015 10:10:45

Hallo Zusammen,
ich bin gerade dabei einen Serienbrief für ausgewählte Personen (mit "x" gekennzeichnet) als PDF zu speichern.
Nun habe ich einen Code "Serienbrief erstellen" mit dem Code "PDF erzeugen" verbunden und es funktioniert - aber leider noch nicht ganz so, wie ich es mir wünsche.
1. Problem: Ich möchte nur einmal die Aufforderung haben, den Speicherort auszuwählen und dort alle Urkunden als PDF speichern. Momentan wird für jede Urkunde der Speicherplatz abgefragt.
2. Problem: Aus mir unerklärlichen Gründen, werden manche Namen doppelt oder dreifach abgespeichert und der letzte Name der ausgewählt wurde wird, auch wenn er abgewählt wurde, beim zweiten Druck mitberücksichtigt. Ich möchte nur die ausgewählten Namen nur einmal abspeichern.
Damit ihr euch ein besseres Bild machen könnt, habe ich meine Beispieldatei hochgeladen.
https://www.herber.de/bbs/user/99910.xlsm
Kann mir jemand von euch weiterhelfen?
Vorneweg vielen lieben Dank für eure Unterstützung.
Liebe Grüße
Meike

Bild

Betrifft: AW: Serienbrief als PDF speichern
von: Michael
Geschrieben am: 01.09.2015 19:58:56
Hallo Meike,
versuch's mal damit:

Option Explicit
Public Sub Seriendruck()
Dim Name$, Vorname$, Geschlecht$
Dim a&
Dim Anzeigen As Boolean, erstes As Boolean
Dim Pfad As String, Datei As String, varDatei
Anzeigen = False
Pfad = ThisWorkbook.Path & "\"
erstes = True
For a = 1 To Sheets("Eingabe").Cells(4, 5).End(xlDown).Row
 If CStr(Sheets("Eingabe").Cells(a, 2)) = "x" Then
  Geschlecht = Sheets("Eingabe").Cells(a, 6)
  Name = Sheets("Eingabe").Cells(a, 5)
  Vorname = Sheets("Eingabe").Cells(a, 4)
  If erstes Then
   Datei = Name & "_" & Vorname
   varDatei = Application.GetSaveAsFilename(InitialFileName:=Pfad & Datei, _
           FileFilter:="PDF (*.pdf),*.pdf", _
           Title:="Bitte Ordner\Dateiname der PDF-Datei auswählen/eingeben")
   If varDatei = False Then Exit Sub
   erstes = False
  Else
   varDatei = Left(varDatei, InStrRev(varDatei, "\")) _
      & Name & "_" & Vorname
'   Stop
  End If
  
  If Geschlecht = "m" Then
    Sheets("form").Cells(9, 3).Value = "Sehr geehrter Herr " & Name
   Else
    Sheets("form").Cells(9, 3).Value = "Sehr geehrte Frau " & Name
  End If
  Sheets("form").ExportAsFixedFormat Type:=xlTypePDF, _
  Filename:=varDatei, _
  OpenAfterPublish:=Anzeigen, _
  Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False
 End If
Next a
End Sub
Die verbundenen Zellen in forms: C9:D9 habe ich "entbunden".
Schöne Grüße,
Michael

Bild

Betrifft: AW: Serienbrief als PDF speichern
von: Meike
Geschrieben am: 02.09.2015 09:59:46
Danke Michael !
Es funktioniert einwandfrei!

Bild

Betrifft: freut mich, danke für die Rückmeldung owT
von: Michael
Geschrieben am: 02.09.2015 13:54:19


 Bild

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