Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1792to1796
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 über XLS starten+sendToEmail

Serienbrief über XLS starten+sendToEmail
23.11.2020 09:41:24
evi
Liebe XLS Gurus,
ich hab schon einige threads durchstöbert, hänge aber seid geraumer Zeit an folgendem (wsl einfach zu lösenden) Problem, und komme nicht weiter:
Ich möchte aus XLS ein Serienbrief starten, mit der Option Emails (nicht word Doks) als mail-merge zu erstellen >> wdsendtoEmail
Ich bekomme aber das Problem nicht gelöst, was man in Word typischerweise über die Command Box angibt (Auswahl wo Email steht, Subject, etc.).
Problem: bei >> .excecute pause:=false >> kommt runtime error 5630 word cannot merge documents that can be distributed by mail
Hier mein Code:
Ich würde mich seehr über hilfe freuen. herzlichen dank!!
Sub SerienbriefVerknüpfen()
Dim oWrd As Object
Dim oDoc As Object
Dim strSheetName As String, strLaufwerkDateiname As String
strSheetName = "Ansprache.docx"
strLaufwerkDateiname = ThisWorkbook.Path & "\" & strSheetName
Set oWrd = CreateObject("word.application")
Set oDoc = oWrd.Documents.Open(strLaufwerkDateiname)
oWrd.Visible = True
oDoc.MailMerge.MainDocumentType = wdFormLetters
oDoc.MailMerge.MainDocumentType = 0
oDoc.MailMerge.OpenDataSource Name:= _
ThisWorkbook.FullName _
, ConfirmConversions:=False, LinkToSource:=True, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & ThisWorkbook. _
FullName & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Je" _
, SQLStatement:="SELECT * FROM `ZUSAGE-Serienbriefmail$`", SQLStatement1:="", _
SubType:=1
' With ActiveDocument.MailMerge
With oDoc.MailMerge
.Destination = 2
' .Destination = .wdSendToEmail
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
oDoc.Close SaveChanges:=0 'Das Seriendruckdokument wird ohne Speichern geschlossen
Set oDoc = Nothing
Set oWrd = Nothing
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Serienbrief über XLS starten+sendToEmail
23.11.2020 11:29:58
evi
Hallo zusammen,
ich habe für das og. Problem eine Alternative bzw. Teillöstung gefunden.
Allerdings poppt jetzt eine Sicherheitswarnung von Outlook auf, und erfordert umständliches "Allow" klicken für jede Mail die geniert wird.
Kennt ihr dafür eine Lösung?
Anbei der updated, zusammenkopierte Code der sicher nicht ganz optimal ist, aber leider an einer besseren Idee/meiner mangelnden VBA Kenntnis krankt..
Sub SerienbriefVerknüpfen()
'litndfnp
Dim oWrd As Object
Dim oDoc As Object
Dim strSheetName As String, strLaufwerkDateiname As String
'Anzahl Emailitems zählen
Dim wert1 As Integer
Sheets("ZUSAGE-Serienbriefmail").Select
wert1 = Application.WorksheetFunction.CountA(Range("b2:b100"))
strSheetName = "Ansprache.docx"
strLaufwerkDateiname = ThisWorkbook.Path & "\" & strSheetName
Set oWrd = CreateObject("word.application")
Set oDoc = oWrd.Documents.Open(strLaufwerkDateiname)
oWrd.Visible = True
oDoc.MailMerge.MainDocumentType = wdFormLetters
oDoc.MailMerge.MainDocumentType = 0
oDoc.MailMerge.OpenDataSource Name:= _
ThisWorkbook.FullName _
, ConfirmConversions:=False, LinkToSource:=True, Connection:= _
"Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & ThisWorkbook. _
FullName & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Je" _
, SQLStatement:="SELECT * FROM `ZUSAGE-Serienbriefmail$`", SQLStatement1:="", _
SubType:=1
'   With ActiveDocument.MailMerge
With oDoc.MailMerge
' .Destination = 2
.MailSubject = "Test message"    ' Email subject.
.MailFormat = wdMailFormatHTML
.Destination = 2
.SuppressBlankLines = True
With .DataSource
.FirstRecord = 1 'wdDefaultFirstRecord
.LastRecord = wert1 'wdDefaultLastRecord
End With
.Execute Pause:=False
End With
oDoc.Close SaveChanges:=0 'Das Seriendruckdokument wird ohne Speichern geschlossen
Set oDoc = Nothing
Set oWrd = Nothing
End Sub

Anzeige
AW: Serienbrief über XLS starten+sendToEmail
23.11.2020 21:47:22
Evi
Liebes Forum,
hat hier jemand einen Tipp für mich - ich bekomme es einfach nicht zum laufen. Den Fall für "Emails versenden" habe ich noch nicht im Forum gelesen..
LG
Evi
AW: Serienbrief über XLS starten+sendToEmail
24.11.2020 15:46:29
Herbert_Grom
Hallo Evi,
mit dem nachfolgenden Code kannst du eine eMail aus Excel via OL versenden. Probiers mal:
Sub eMailVersand_Outlook()
Dim sFileName$, olSession As Object
On Error Resume Next
Set BasDat = Sheets("xxx")
Set olSession = CreateObject("Outlook.Application")
strbody = "xyz" 'oder in Zelle: BasDat.Range("A1").Value
sFileName = ThisWorkbook.Path & "\" & BasDat.Range("PdfDruckName1").Value
With olSession.CreateItem(0)
.Subject = BasDat.Range("xxx").Value
.To = "email@email.de" 'BasDat.Range("C23").Value
.CC = BasDat.Range("C24").Value
.BCC = BasDat.Range("C25").Value
.Body = strbody
.Attachments.Add sFileName
'.Display
.Send
End With
Set olSession = Nothing ' beendet die Outlooksession
End Sub
Servus
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige