Hallo,
ich bin unerfahren in VBA, habe so gut wie keine Programmierkenntnisse, deshalb bin ich auf Hilfe angewiesen.
Mein Problem:
Ich möchte einen Serienbrief per VBA einzeln als pdf in einen festgelegten Ordner speichern. Außerdem soll der neue Dateiname sich aus Seriendruckfeldern zusammensetzen. Das habe ich mit untenstehendem Code bereits erreicht.
Ich möchte allerdings nicht alle Datensätze speichern, sondern lediglich den aktuellen Datensatz. Im Code unten werden alle Datensätze gespeichert. Wer kann den Code entsprechend umarbeiten? Denke, das ist nur ne kleinigkeit?!
Sub SeriendruckInEinzelneDokumente()
'
' SeriendruckInEinzelneDokumente Makro
'
Const Pfad As String = "E:\Eigene Daten\Dropbox\Mitteilungen\" 'Ausgabepfad
Const FeldDateiname As String = "Nachname_Schüler" 'Name des DB-Feldes, dass den Dateinamen enthällt.
Dim iAnzBriefe As Integer 'Anzahl der zu erstellenden Dokumente
Dim MMergeDS As Word.MailMergeDataSource 'Datenquelle des Seriendruckdokuments
Dim MMerge As Word.MailMerge
Dim Dateiname As String 'Name der Zieldatei
Set MMerge = ActiveDocument.MailMerge
Set MMergeDS = MMerge.DataSource
MMerge.Destination = wdSendToNewDocument
iAnzBriefe = MMergeDS.ActiveRecord 'Anzahl der Dokumente bestimmen
For i = 1 To iAnzBriefe
MMergeDS.ActiveRecord = i
MMergeDS.FirstRecord = i 'Festlegen, dass nur dieser_
MMergeDS.LastRecord = i 'eine Datensatz ausgegeben wird
MMerge.Execute 'Seriendruck ausführen (Neues Dokument wird erstellt und geöffnet)
Dateiname = Pfad & MMergeDS.DataFields(FeldDateiname).Value & "-" & Date & ".pdf"
ActiveDocument.SaveAs FileName:=Dateiname, FileFormat:=wdFormatPDF, AddToRecentFiles:=False 'PDF-Dokument speichern
ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges 'Dokument ohne .docx zu speichern schließen
Next
End Sub
|