Ich habe folgende Frage.
Möchte eine Arbeitsmappe als Anhang an eine Mail versenden und das ganze per VBA.
Die Email-Adresse steht in der Zelle G3, zudem wäre es auch ganz schön wenn man die Email-Adresse aus dem Outlook-Kontakt Ordner auswählen könnte.
Gibt es dafür eine Lösung?
Bis jetzt schaffe ich es nur einzelne Tabellenblätter per Email und VBA zu versenden. Hier mal das Makro dafür, vielleicht kann man das ja umbauen:
Für Eure Mühe bedanke ich mich schon jetzt rechtherzlich!!
Gruß
ralle
Option Explicit
Declare
Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub BlattKopierenUndVersenden()
'alle Tabellenblätter als Arbeitsmappe
'im Temporären Ordner speichern, als
'Anlage mit Outlook versenden und anschliesend löschen
'Empfängeradresse steht in "G3" der jeweiligen Tabelle
Dim wks As Worksheet
Dim strAddress As String
Dim strPath As String
Dim strName As String
Dim strFile As String
Dim wkbaktiv As Workbook
Set wkbaktiv = ActiveWorkbook
strPath = "C:\winnt\Temp\" 'Pfad des Temporären Ordners
Application.ScreenUpdating = False
On Error GoTo fehler
For Each wks In wkbaktiv.Sheets
With wks
If InStr(1, .[G3], "@") = 0 Then GoTo Nomail
strName = wks.Name 'Tabellenname
strFile = strPath & strName & ".xls" 'Dateiname
strAddress = .[G3] 'Empfänger
.Copy
End With
With ActiveWorkbook
.SaveAs strFile
Senden strFile, strAddress 'Datei versenden
.Close
End With
Kill strFile 'Datei löschen
Nomail:
Next
fehler:
Application.ScreenUpdating = True
End Sub
Sub Senden(AWS As String, strTo As String)
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = strTo 'Empfänger
.Subject = "Irgendein Betreff" 'Betreff
.attachments.Add AWS 'Anlage(Tabelle)
.Body = "Diese Mail wurde automatisch versand" & vbCrLf & "" 'Nachrichtentext
'Hier wird die Mail nochmals angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
Sleep 5000 'warten auf Outlook
End Sub