Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mail aus Zellen mit Text und Anhang

Mail aus Zellen mit Text und Anhang
18.11.2022 12:33:11
Norman
Hallo liebe Excel-Freunde,
ich möchte gerne Mails komplett aus verschiedenen Zelleninhalten direkt aus Excel generieren.
Dabei soll das so wie beim Serienbrief in Word laufen, also eine Kombination verschiedener Zelleninhalte als Datensatz (Mailadresse, Betreff, Inhalt/Text, Anhang).
Mit Hyperlink komme ich leider nicht weiter, weil dabei dann ja anscheinend die Textlänge sehr begrenzt ist, ich brauche aber deutlich mehr als 255 Zeichen. Außerdem soll eben auch immer ein entsprechender Anhang mit dabei sein.
Außerdem möchte ich dies aber eben nicht zum Versenden vieler Mails auf einmal, sondern nur auf Knopfdruck jeweils eine entsprechend zusammengestellte Mail versenden.
Ich hoffe, mein Problem wird deutlich und es gibt hierfür eine Lösung.
Vielen Dank, ich freue mich auf Rückmeldungen,
beste Grüße,
Norman
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mail aus Zellen mit Text und Anhang
18.11.2022 15:13:21
volti
Hallo Norman,
es gibt hunderte von Beispielen zum Mailversand im Netz. Musst Du mal googlen.
Außerdem ist Dein Wunsch auch nur spärlich beschrieben, denn es gibt viele Varianten. Eine Beispieldatei wäre z.B. gut.
Aber nun gut, hier mal ein Beispiel wie man eine HTML-Mail mit Signatur, eingebettetem Tabellenbereich und angefügter Anlage erstellen kann.
Code:


Option Explicit Private Sub Mailsenden() Dim sMailtext As String Dim Wsh As Worksheet Set Wsh = ThisWorkbook.Sheets("Tabelle1") Wsh.Range("A5:B10").Copy ' Bereich kopieren With CreateObject("Outlook.Application").CreateItem(0) .Getinspector.Display .To = Wsh.Range("A1").Value .CC = "" .Bcc = "" .Subject = Wsh.Range("A4").Value sMailtext = "Hallo " & Wsh.Range("A5").Value & "<br>hier ist eine Mail." .htmlbody = sMailtext & "<br><br>" & .htmlbody With .Getinspector.WordEditor.Application.Selection .Start = Len(sMailtext) - 2 ' Position ggf. anpassen .Paste ' Bereich in Mail einfügen End With .Attachments.Add ActiveWorkbook.FullName End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Mail aus Zellen mit Text und Anhang
18.11.2022 15:43:40
Norman
Moin Karl-Heinz,
vielen Dank schon mal für die schnelle Antwort.
Ich hatte auf eine Lösung ohne VBA gehofft....
Ich hab mal eine Beispieldatei hochgeladen.
https://www.herber.de/bbs/user/156260.xlsm
Auf dem Blatt Rechnungen wird in Spalte DJ der Betreff gesammelt, in R stehen die Mailadressen, in DK der Text der Mail (zusammengeführt auch aus mehreren anderen Zellen) und in DR stehen die Dateipfade zu den jeweiligen Anhängen.
Ich wäre also super dankbar, wenn es nun in jeder Zeile eine Zelle geben würde zum Auslösen einer entsprechenden Mail.
Ginge das (sogar ohne VBA)?
Vielen Dank und Gruß,
Norman
Anzeige
AW: Mail aus Zellen mit Text und Anhang
18.11.2022 16:32:40
volti
Hallo Norman,
ohne VBA kenne ich nur "Mailto". Da kannst Du aber meines Wissens keinen Anhang mit verschicken.
Außerdem ist eine VBA-Mail viel flexibler.
Hier eine Idee zu Deinem Vorhaben. Der Code kommt ins Tabellenmodul "Rechnungen".
Ein Doppelclick in Spalte "DT" versendet die eMail für die betreffende Zeile und markiert in Zelle DTx, dass die Mail versendet wurde. So ist Doppelversand ausgeschlossen.
Kannst es ja mal ausprobieren.
Code:


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim iZeile As Long, Wsh As Worksheet Set Wsh = ThisWorkbook.Sheets("Rechnungen") With Target iZeile = .Row If .Column <> 124 Or iZeile < 2 Or Wsh.Cells(iZeile, "R").Value = "" Then Exit Sub If Wsh.Cells(iZeile, 124).Value = "Mail versendet" Then MsgBox "Diese Mail wurde schon verschickt!", vbExclamation, "Mailversan" Cancel = True: Exit Sub End If End With With CreateObject("Outlook.Application").CreateItem(0) .Getinspector.Display .To = Wsh.Cells(iZeile, "R").Value .Subject = Wsh.Cells(iZeile, "DJ").Value .body = Wsh.Cells(iZeile, "DK").Value _ & vbLf & .body ' Signatur zufügen If Dir$(Wsh.Cells(iZeile, "DR").Value) <> "" Then .Attachments.Add Wsh.Cells(iZeile, "DR").Value End If Wsh.Cells(iZeile, 124).Value = "Mail versendet" End With Cancel = True End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Mail aus Zellen mit Text und Anhang
18.11.2022 20:25:16
Norman
Hi Karl-Heinz,
das ist ja richtig gut, vielen Dank, ein Traum. :-)
Allerdings kommen noch Fehlermeldungen, hab die mal hochgeladen. Userbild
Userbild
Was hat es damit auf sich? Einfach wegklicken?
Und eine Markierung, wenn schon gemailt wurde, hab ich auch noch nicht entdeckt, hängt das zusammen?
Beste Grüße,
Norman
Anzeige
AW: Mail aus Zellen mit Text und Anhang
18.11.2022 22:48:50
volti
Hallo Norman,
der Fehler kommt zustande, weil/wenn in der entsprechenden Zeile #Bezug vorkommt.
Du musst darauf achten, dass alle relevanten Zellen sauber sind.
Gruß
Karl-Heinz
AW: Mail aus Zellen mit Text und Anhang
19.11.2022 11:02:48
Norman
Nun möchte ich gerne, dass die Zelle, die zum Aktivieren genutzt wird in Spalte E sitzt.
Wo kann das gemacht werden?
Ist was wegen Blattschutz zu bedenken?
Wenn ich das noch weiß, bin ich glücklich und Dir sehr dankbar. :-)
Gruß,
Norman
Anzeige
AW: Mail aus Zellen mit Text und Anhang
19.11.2022 23:05:25
Norman
Hallo nochmal,
wie man die auslösende Zelle verändert, hab ich nun auch rausgefunden.
Das ist wirklich alles richtig super, vielen Dank Karl-Heinz! :-)
Ein Miniproblem hab ich nun noch:
Wenn die Mail ausgelöst wird, übernimmt Outlook leider nur den Text aus der Standard-Signatur, nicht aber die Visitenkarte, die sonst immer in der Signatur mit dabei ist. Obwohl ganz richtig eine HTML-Mail ausgelöst wird...?
Nun dachte ich, kein Problem, dann nehm ich eben die automatische Signatur raus und lös die zusammen mit der Mail aus Excel aus. Wenn ich aber nun da den Dateipfad zur Visitenkarte per Zelle verlinke, sieht man in der Mail nur den Pfad nicht aber die Bilddatei.
Kannst Du mir hierzu auch nochmal helfen?
Dann nerv ich auch nicht mehr und bin selig. :-)
Vielen Dank und Gruß,
Norman
Anzeige
AW: Mail aus Zellen mit Text und Anhang
20.11.2022 09:40:47
volti
Hallo Norman,
vielleicht hilft es, das Format der eMail noch mal extra anzugeben.
.BodyFormat = 2 ' HTML-Format.
Ansonsten kenne ich mich mit Visitenkarten (noch) nicht aus.
Ich lasse die Frage mal offen.
Gruß KH
AW: Mail aus Zellen mit Text und Anhang
20.11.2022 11:35:11
Norman
Wo genau und wie muss man das Format denn eintragen?
Anzeige
AW: Mail aus Zellen mit Text und Anhang
21.11.2022 22:18:13
Norman
Hi KH,
ich weiß leider nicht, an welcher Stelle in der VBA ich nun ".BodyFormat = 2 ' HTML-Format." einfügen muss, damit dass klappen kann.
Magst Du mir das noch mitteilen?
Besten Dank und Gruß,
Norman
AW: Mail aus Zellen mit Text und Anhang
21.11.2022 22:34:51
volti
Hallo Norman,
der Punkt am Anfang besagt, dass es sich auf die WITH-Klausel bezieht und am besten gleich dort am Anfang zu platzieren ist.
Aber wie gesagt, ob es Dein Problem löst, weiß ich nicht.
Code:


With CreateObject("Outlook.Application").CreateItem(0) .BodyFormat = 2 ' HTML-Format .Getinspector.Display .To = Wsh.Cells(iZeile, "R").Value .Subject = Wsh.Cells(iZeile, "DJ").Value .body = Wsh.Cells(iZeile, "DK").Value _ & vbLf & .body ' Signatur zufügen If Dir$(Wsh.Cells(iZeile, "DR").Value) <> "" Then .Attachments.Add Wsh.Cells(iZeile, "DR").Value End If Wsh.Cells(iZeile, 124).Value = "Mail versendet" End With

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Mail aus Zellen mit Text und Anhang
22.11.2022 20:42:14
Norman
Hey Karl-Heinz,
vielen Dank nochmal. Das Problem hat es leider nicht behoben, aber ich bin trotzdem glücklich mit Deiner Lösung, echt richtig super.
:-)
Beste Grüße,
Norman
;
Anzeige
Anzeige

Infobox / Tutorial

Mails aus Zellen mit Text und Anhang erstellen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt oder benutze ein bestehendes.

  2. Fülle die Zellen mit den benötigten Informationen:

    • Spalte A: E-Mail-Adressen
    • Spalte B: Betreff der E-Mail
    • Spalte C: Textinhalt der E-Mail
    • Spalte D: Pfad zum Anhang
  3. Öffne den VBA-Editor:

    • Drücke ALT + F11.
  4. Füge den folgenden VBA-Code in das Modul ein:

    Private Sub Mailsenden()
       Dim sMailtext As String
       Dim Wsh As Worksheet
       Set Wsh = ThisWorkbook.Sheets("Tabelle1")
    
       With CreateObject("Outlook.Application").CreateItem(0)
           .To = Wsh.Range("A1").Value
           .Subject = Wsh.Range("B1").Value
           sMailtext = "Hallo," & vbCrLf & Wsh.Range("C1").Value
           .Body = sMailtext
           .Attachments.Add Wsh.Range("D1").Value
           .Display
       End With
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus, um die E-Mail zu generieren. Du kannst das Makro über Entwicklertools -> Makros ausführen.


Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"

    • Überprüfe, ob der Pfad zum Anhang in der richtigen Zelle angegeben ist.
  • Fehler: E-Mail wird nicht gesendet

    • Stelle sicher, dass Outlook korrekt installiert und konfiguriert ist. VBA benötigt eine funktionierende Outlook-Anwendung.
  • Problem mit der Textlänge in der Zelle

    • Stelle sicher, dass in der Zelle für den E-Mail-Text nicht mehr als 255 Zeichen verwendet werden, oder passe den Code an, um längere Texte zu unterstützen.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du die Mailto-Lösung ausprobieren:

<a href="mailto:example@example.com?subject=Betreff&body=Textinhalt">E-Mail senden</a>

Diese Methode kann jedoch keine Anhänge versenden. Für Mails mit Attachment benötigst du VBA oder eine Drittanbieter-Lösung.


Praktische Beispiele

Ein Beispiel für eine Visitenkarte für DJ erstellen in Excel könnte wie folgt aussehen:

  1. Zelle A1: dj@example.com
  2. Zelle B1: Anfrage zur Buchung
  3. Zelle C1: Hallo, ich bin DJ und freue mich auf eure Anfrage!
  4. Zelle D1: C:\Pfad\Zur\Visitenkarte.jpg

Führe dann das oben stehende Makro aus, um eine E-Mail zu erstellen, die alle Informationen aus diesen Zellen verwendet.


Tipps für Profis

  • Verwende .BodyFormat = 2, um sicherzustellen, dass die E-Mail im HTML-Format gesendet wird, was besonders nützlich ist, wenn du links zu Bildern oder Visitenkarten einfügen möchtest.
  • Experimentiere mit verschiedenen Formaten für die E-Mail, um das Layout und die Präsentation zu verbessern.
  • Nutze die Möglichkeit, Signaturen in Outlook zu erstellen, um deine E-Mails professioneller zu gestalten.

FAQ: Häufige Fragen

1. Kann ich das Makro für mehrere Zeilen verwenden?
Ja, du kannst den Code anpassen, um durch alle Zeilen zu iterieren und für jede Zeile eine E-Mail zu erstellen.

2. Wie kann ich eine Visitenkarte für DJ gestalten?
Verwende spezielle Designsoftware oder Excel selbst, um eine ansprechende Vorlage zu erstellen. Du kannst auch Vorlagen online finden.

3. Was muss ich tun, wenn die E-Mail nicht das richtige Format hat?
Stelle sicher, dass du die .BodyFormat = 2-Zeile im richtigen Abschnitt deines Codes platzierst, um das HTML-Format zu aktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige