VBA Exceldatei nach Speichern Schließen automatisch versenden per Mail
Guten Tag,
Ich benötige einen Code zum Senden einer Datei nachdem ich diese gespeichert habe. Bisher ist es mir nur gelungen jemanden zu benachrichtigen per Makro. Ich möchte aber dass sich die Datei auch anhängt da es Benutzer gibt die keinen Zugriff auf die Datei haben (extern).
Vielen Dank im Voraus für die Hilfe
lg Mike89
Ich benötige einen Code zum Senden einer Datei nachdem ich diese gespeichert habe. Bisher ist es mir nur gelungen jemanden zu benachrichtigen per Makro. Ich möchte aber dass sich die Datei auch anhängt da es Benutzer gibt die keinen Zugriff auf die Datei haben (extern).
Vielen Dank im Voraus für die Hilfe
lg Mike89
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 285104
Url: https://administrator.de/forum/vba-exceldatei-nach-speichern-schliessen-automatisch-versenden-per-mail-285104.html
Ausgedruckt am: 22.05.2025 um 04:05 Uhr
4 Kommentare
Neuester Kommentar

Hallo Mike89,
da hast du mehrere Möglichkeiten.
Die simpelste sieht so aus:
(Diese hat aber nur begrenzte Möglichkeiten der Anpassung, ist aber schnell geschrieben)
Die zweite für dich vermutlich eher passende sieht so aus:
WICHTIG: Der Code gehört in den Abschnitt ThisWorkbook oder DieseArbeitsmappe, weil das BeforeClose-Event nur dort reagiert, wenn die Mappe geschlossen wird!
Grüße Uwe
da hast du mehrere Möglichkeiten.
Die simpelste sieht so aus:
(Diese hat aber nur begrenzte Möglichkeiten der Anpassung, ist aber schnell geschrieben)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.SendMail "user@domain.de", "Test"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Save
email "user@domain.de", "TestSubject", "Das ist mein Body", Array(ActiveWorkbook.FullName)
End Sub
Function email(sMailto, sSubject, sBodyText, arrAttachments)
On Error Resume Next
Set objOutlook = GetObject("", "Outlook.Application")
If objOutlook Is Nothing Then
Set objOutlook = CreateObject("Outlook.Application")
End If
Set objMail = objOutlook.CreateItem(0)
If Not objMail Is Nothing Then
With objMail
.To = sMailto
.Subject = sSubject
.Body = sBodyText
If UBound(arrAttachments) <> -1 Then
For i = 0 To UBound(arrAttachments)
.Attachments.Add arrAttachments(i)
Next
End If
.Send
End With
End If
Set objOutlook = Nothing
End Function
Grüße Uwe