Serienbreiferstellung mit Excel VBA
13.03.2019 15:44:39
Malte
ich habe folgendes Problem:
ich habe eine Arbeitsmappe, in der Berechnungen angestellt werden.
Diese Berechnungen werden anschließend für die Erstellung von 7 Serienbriefen verwendet. Das funktioniert auch alles wunderbar. Das einzige Problem ist, dass beim Erstellen der PDF-Datein immer eine leere Seite angfügt wird (ebenso in der Word Datei). Hat jemand eine Idee, wie ich das verhindern kann?
Sub Serienbrief_erstellen(strSB As String, strTable As String, strFilenamePDF As String, _
strFilenameDOCX As String)
' Im Excel VBA-Editor muss vorher für die Datei mit diesem Makro unter Extras-Verweise
' den Verweis auf die Microsoft Word x.y Object Library aktiviert werden!!
'Variablen deklarieren
Dim WinWord, WinDoc As Word.Document
Dim strCon, strDatenquelle, strWordVorlage As String
strDatenquelle = ThisWorkbook.FullName
strWordVorlage = p_strPfadSerienbriefe & strSB
Set WinWord = CreateObject("Word.Application")
WinWord.Visible = True
'Vorlagedatei öffnen
Set WinDoc = Documents.Open(strWordVorlage)
'Datenquelle öffnen
With WinDoc
With .MailMerge
.OpenDataSource Name:=strDatenquelle, _
ConfirmConversions:=False, _
LinkToSource:=True, _
Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:="Provider=Microsoft.Jet.OLEDB.4.0;" _
& "User ID=Admin;" _
& "Data Source=" & strDatenquelle & ";" _
& "Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";" _
& "Jet OLEDB:System database="""";" & "Jet OLEDB:Registry Path="""";" _
& "Jet OLEDB:Engine ", _
SQLStatement:="SELECT * FROM `" & strTable & "$`", SQLStatement1:="", _
SubType:=wdMergeSubTypeAccess
'Serienbrief mit allen Daten in neuem Dokument erstellen
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
'Erstelltes Dokument speichern
With ActiveDocument
' Speichern als DOCX
.SaveAs2 p_strPfadAnlageDOCX & "\" & strFilenameDOCX
'Speichern als PDF
.ExportAsFixedFormat p_strPfadAnlagePDF & "\" & strFilenamePDF, wdExportFormatPDF, FROM:=1, _
_
TO:=1
'Dokument schließen
.Close False
End With
'Datenquelle schliessen
.DataSource.Close
End With
'Vorlagedatei schliessen
.Close SaveChanges:=False
End With
'Word Application schließen
WinWord.Quit
Set WinWord = Nothing
Set WinDoc = Nothing
End Sub