Hallo liebe Forengemeinde,
ich bin seit Tagen am herumprobieren, konnte aber noch keine Lösung zu meinem Problem finden:
Sachverhalt:
Per VBA eine Email erzeugen, in der im Body ein ausgewählter Bereich A1-D10 eines Tabellenblatts XY eingefügt wird. Die Email soll vor dem verschicken angezeigt werden, damit noch ergänzende Texte z.b. "Hallo Harald" eingefügt werden können. Das eingefügte Tabellenblatt soll zwischen Begrüßung und Verabschiedung eingebaut sein.
Mein bestes Ergebnis ist dieses hier. Hier wird die Mail aber vor dem Versenden nicht angezeigt. Jegliche Möglichkeiten mit ".display" sind leider gescheitert. Bitte helft mir weiter!!
Sub Email_senden()
'Working in Excel 2002-2013
Dim AWorksheet As Worksheet
Dim Sendrng As Range
Dim rng As Range
On Error GoTo StopMacro
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
'Fill in the Worksheet/range you want to mail
'Note: if you use one cell it will send the whole worksheet
Set Sendrng = ThisWorkbook.Sheets(3).Range("A1:B15")
'Remember the activesheet
Set AWorksheet = ActiveSheet
With Sendrng
' Select the worksheet with the range you want to send
.Parent.Select
'Remember the ActiveCell on that worksheet
Set rng = ActiveCell
'Select the range you want to mail
.Select
' Create the mail and send it
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope
' Set the optional introduction field thats adds
' some header text to the email body.
.Introduction = "This is test mail 2."
With .Item
.To = "xxx@xxx.com"
.CC = ""
.BCC = ""
.Subject = "My subject"
.Send
End With
End With
'select the original ActiveCell
rng.Select
End With
'Activate the sheet that was active before you run the macro
AWorksheet.Select
StopMacro:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
ActiveWorkbook.EnvelopeVisible = False
End Sub
Vielen Dank im Voraus.
LG Lydia
|