Serienbrief aus Excel mit Selektierung
31.07.2022 15:16:12
Hans
ich habe folgendes Problem:
Die beigefügte Beispieldatei funktioniert soweit tadellos. Wenn ich auf die Schaltfläche "Word Serienbrief erstellen" klicke, dann wird entsprechend der hinterlegten Vorlage ein Serienbrief erzeugt. Nun soll es aber so sein, dass nur dann ein Brief in Word generiert werden soll, wenn in Spalte "H" beispielsweise der Buchstabe "B" steht. Es ist wichtig, dass tatsächlich nach einem bestimmten Buchstaben gesucht wird, da davon dann auch abhängt, welcher Brief gesendet werden soll. Wie müsste ich den nachfolgenden Code ergänzen?
'------------
Private Const sWord_Document_Name As String = "Serienbriefe_aus_Excel.docx"
Private Const Table_with_Adresses As String = "Serienbrief_Adressen"
'------------
Sub Erstelle_Word_Serienbrief_als_Vorschau()
'----------------------------------------
'
Dim sCurrent_Path As String
sCurrent_Path = ActiveWorkbook.Path
Dim sFull_Path_of_Word_File
sFull_Path_of_Word_File = sCurrent_Path & "\" & sWord_Document_Name
' Path >
'
'
'Dim app As Word.Application '*Verweis Word-dll
'Set app = New Word.Application '*Verweis Word-dll
' with word_refernece >
'
Dim app As Object '*late-binding
Set app = CreateObject("Word.Application") '*late-binding
' with late-binding >
app.Visible = True
app.Activate
' Word starten >
' Word Document oeffnen >
'Dim doc As Object '*late-binding
Dim doc As Word.Document 'word-dll
Set doc = CreateObject("Word.Document")
Set doc = app.Documents.Open(sFull_Path_of_Word_File, ConfirmConversions:=False, ReadOnly:=False, AddToRecentFiles:=False)
' Word Document oeffnen >
Dim wb As Workbook
Set wb = ThisWorkbook
Dim sExcel_Filename As String
sExcel_Filename = ThisWorkbook.FullName
'
'*versions 2007+
'*Datenquelle für den Seriendruck
doc.MailMerge.MainDocumentType = wdFormLetters
doc.MailMerge.OpenDataSource Name:="" & sExcel_Filename & "", _
ReadOnly:=False, LinkToSource:=True, _
Format:=wdOpenFormatAuto, _
Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=" & sExcel_Filename & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;" _
, SQLStatement:="SELECT * FROM `" & Table_with_Adresses & "$`", _
SubType:=wdMergeSubTypeAccess
' Datenquelle einstellen >
'
doc.MailMerge.Destination = wdSendToNewDocument
doc.MailMerge.Execute Pause:=False
' output >
doc.Close SaveChanges:=False
Set doc = Nothing
Set app = Nothing
'-------------------- Word_oeffnen() >--------------------
End Sub
Wäre es denn zusätzlich auch möglich, die Word-Vorlage, die verwendet werden soll, durch ein Dop-Down-Feld auszuwählen?Schon an dieser Stelle herzlichen Dank für Eure Rückmeldung und Hilfe.
Viele Grüße aus der Kurpfalz sendet
Hans