Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Serienbrief aus Excel mit Selektierung

Serienbrief aus Excel mit Selektierung
31.07.2022 15:16:12
Hans
Liebe Leute,
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

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Serienbrief aus Excel mit Selektierung
31.07.2022 17:31:39
ralf_b
Es würde wahrscheinlich ausreichen, dein SQL Statement mit einer Where Klausel zu ergänzen.
AW: Serienbrief aus Excel mit Selektierung
31.07.2022 20:33:03
Hans
Perfekt. Genau das war die Lösung. Tausend Dank, Ralf!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige