AW: VBA mehrere Empfänger und Anhang
13.06.2017 15:53:24
Michael
Hallo!
Der Code, in der geposteten Form, macht so auch nicht wirklich Sinn.
Du deklarierst zwar ein Objekt für Outlook, was grds. dem Ziel entspricht, mit diesem Objekt eine neue Nachricht zu erzeugen, und dieser dann ggf. entsprechende Empfänger bzw. CC-Adressaten hinzuzufügen - nur nutzt Du nach der Deklaration dieses Objekt nie mehr.
Stattdessen nutzt Du eine Excel-interne Funktion (Dialog) um direkt eine neue Nachricht, mit der Mappe als Anlage, zu erzeugen. Dabei steht Dir aber die Angabe von .CC per Code nicht zur Verfügung; um mehrere Empfänger (An) zu übergeben musst Du, wie Matthias bereits erwähnt hat, diese zunächst in einem String sammeln. D.h.:
Private Sub CommandButton1_Click()
Dim MailEmpf As String
Dim Betreff As String
Sheets("Berechnung").Calculate
Sheets("Waste Management Check").Calculate
If Range("H51") = "ABC" Or Range("H51") = "ABCDE" Then
If MsgBox("Thanks for calculating. Like to send? ", vbYesNo) = _
vbYes Then
MailEmpf = "abc@xyz.org;info@xyz.ch" 'usw. ...
Betreff = "Calculated file from " & [H4].Value
Application.Dialogs(xlDialogSendMail).Show _
MailEmpf, Betreff
End If
End If
End Sub
Das Outlook-Objekt benötigst Du dann nicht. Solltest Du aber mit diesem arbeiten wollen, müsste der Code anders aussehen, dann stehen Dir auch mehr Möglichkeiten (zB die Angabe von CC-Empfängern) zur Verfügung:
Sub a()
Dim ObjOutlook As Object
Dim Betreff As String
Sheets("Berechnung").Calculate
Sheets("Waste Management Check").Calculate
If Range("H51") = "ABC" Or Range("H51") = "ABCDE" Then
If MsgBox("Thanks for calculating. Like to send? ", vbYesNo) = _
vbYes Then
Set ObjOutlook = CreateObject("Outlook.Application")
Betreff = "Calculated file from " & [H4].Value
With ObjOutlook.createitem(0)
.To = "abc@xyz.org;info@xyz.ch" 'usw.
.Cc = "mail@post.com" 'usw.
.Subject = ""
.Display
End With
End If
End If
End Sub
Auch hier würde sich aber das vorige Sammeln der jeweiligen Einträge (An, Cc, Betreff... ) in Variablen (oder ggf. Konstanten) anbieten.
LG
Michael