AW: Excel Serienbrief bzw. Tabelle
15.07.2010 15:17:18
fcs
Hallo Stefan,
was geht, hängt ab von den Optionen des verwendeten Programms/Druckertreibers zum Erzeugen der PDF-Dateien. Im Archiv findest du hier sicherlich verschiedene Threads.
Mit FreePDF, so konfiguriert, dass die PDF-Dateien automatisch in einem bestimmten Verzeichnis abgelegt werden funktioniert es mit dem folgenden Makro.
Das Drucken der PDF solltest du dann vom Windows-Explorer/Dateimanager aus starten. Alle Dateien selektieren und dann Drucken. Das kann bei so vielen Dateien schon dauern.
Gruß
Franz
Sub Serienbrief()
' Serienbrief mit Daten aus Blatt 1 füllen und PDF-Drucken
Dim wksListe As Worksheet, wksBrief As Worksheet
Dim vWert, Zeile As Long, sPrinter As String
Dim PfadPDF As String, oldName As String, newName As String
PfadPDF = "C:\lokale Daten\PDF\" 'ggf. anpassen
Set wksListe = Worksheets(1)
Set wksBrief = Worksheets(2)
sPrinter = Application.ActivePrinter
Application.ActivePrinter = "FreePDF XP auf Ne03:" 'anpassen
With wksListe
For Zeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
vWert = .Cells(Zeile, 1).Text
With wksBrief
.Range("B3").Value = vWert
.Calculate
.PrintOut Copies:=1, Collate:=True
End With
oldName = ActiveWorkbook.Name
oldName = PfadPDF & Left(oldName, InStrRev(oldName, ".")) & "PDF"
newName = PfadPDF & vWert & ".PDF"
Do Until Dir(oldName) ""
Application.Wait (Now + TimeSerial(0, 0, 2))
Loop
Name oldName As newName
Next
End With
Application.ActivePrinter = sPrinter
End Sub