Excel-Tabellenblatt per E-Mail versenden mit VBA
Schritt-für-Schritt-Anleitung
Um ein Excel-Tabellenblatt per E-Mail zu versenden, benötigst Du den folgenden VBA-Code. Dieser Code funktioniert sowohl auf Windows als auch auf MacOS, wobei Du sicherstellen musst, dass Du die entsprechenden Anpassungen für die Outlook-Anwendung vornimmst.
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
- Kopiere den folgenden Code in das Modul:
Sub einzelnes_Blatt_senden()
ActiveSheet.Unprotect Password:="password"
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
Dim outObj As Object
Dim Mail As Object
Dim strBodyText As String
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
strPfad = "C:\Temp"
strBlatt = ActiveSheet.Name
Sheets(strBlatt).Copy
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
strDatei = ActiveWorkbook.FullName
With Mail
.To = "spoc@empf.ch"
'.CC = ""
.Subject = "Artikelstammdaten"
.BodyFormat = 2 '2 = HTML, 1 = Text
.Attachments.Add strDatei
.Body = strBodyText
End With
Workbooks(Dir(strDatei)).Close
Kill (strDatei)
Mail.Display
ActiveSheet.Protect Password:="password"
End Sub
- Passe den Speicherpfad und die E-Mail-Adresse an Deine Bedürfnisse an.
- Schließe den VBA-Editor und führe das Makro aus.
Häufige Fehler und Lösungen
Alternative Methoden
Für Nutzer von Google Sheets gibt es die Möglichkeit, ein Makro zu erstellen, um eine E-Mail zu versenden. Hierbei kannst Du den google sheets macro button
verwenden, um den Prozess zu automatisieren. Das HTML-Formular kann ebenfalls verwendet werden, um Daten per E-Mail zu senden.
Praktische Beispiele
Ein Beispiel für das Versenden des Inhalts bestimmter Zellen im Bodytext der E-Mail:
strBodyText = "Die Werte sind: " & Range("A1").Value & " und " & Range("B1").Value
Füge diesen Code in den With Mail
Block ein, um die Werte von Zellen A1 und B1 in den E-Mail-Text einzufügen.
Tipps für Profis
- Verwende
vba mail versenden
, um Massen-E-Mails zu erstellen, indem Du eine Schleife über eine Liste von E-Mail-Adressen implementierst.
- Achte darauf, dass Du beim Arbeiten mit
mac vba excel
die spezifischen Funktionen für den Mac verwendest, um Komplikationen zu vermeiden.
FAQ: Häufige Fragen
1. Kann ich den Code in Excel für den Mac verwenden?
Ja, der Code ist so strukturiert, dass er sowohl in Excel für Windows als auch für Mac funktioniert, solange Du die entsprechenden Anpassungen vornimmst.
2. Wie kann ich den E-Mail-Body formatieren?
Du kannst HTML verwenden, um den E-Mail-Body zu formatieren, indem Du BodyFormat = 2
setzt und HTML-Tags in den strBodyText
einfügst.
3. Was ist der Unterschied zwischen dem Versenden einer E-Mail auf Windows und Mac?
Die Hauptunterschiede liegen in der verwendeten Outlook-Anwendung und der Art und Weise, wie bestimmte VBA-Objekte auf den jeweiligen Plattformen erstellt werden. Achte darauf, die korrekten Objekte für Deine Plattform zu verwenden.