Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
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: Text aus Excel in Mail einfügen HTML

Text aus Excel in Mail einfügen HTML
17.11.2018 09:46:48
Marquardt
Guten Morgen,
ich habe ein Problem und vielleicht kann mir jemand helfen.
Ich habe in einer Zelle einen Text aus mehreren Teilen mit "Verketten" zusammengesetzt.
Jetzt möchte ich den Text in eine Mail kopieren. Das alles habe ich schon geschafft.
Mein Problem eins ist, dass beim Kopieren in die Mail alle Absätze verschwunden sind und ich nur noch einen fließenden Text habe.
Problem zwei. Ich habe die Schriftart und die Größe versucht festzulegen. Schriftart funktioniert, Schriftgröße aber nicht.
font face=""Calibri""
Font.size=11
Der Text bzw. die Verkettung steht in Zelle C43.
Vielleicht hat jemand Zeit einmal zu schauen und eine Idee wie ich den Text aus Excel in die Mail (mit Absatz) überführen kann.
Gruß
Detlef
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text aus Excel in Mail einfügen HTML
17.11.2018 11:23:17
Sepp
Hallo Detlef,
zeig den ganzen Code.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Text aus Excel in Mail einfügen HTML
17.11.2018 12:24:07
Marquardt
Hallo Sepp,
mir geht es um die Schriftgröße in der Mail.

Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.GetInspector
.To = Sheets("Firmen").Range("c32").Value
.CC = Sheets("Firmen").Range("c33").Value
.BCC = Sheets("Firmen").Range("c34").Value
.Subject = ThisWorkbook.Worksheets("Firmen").Range("c40")
.HTMLBody = "" & Sheets("Firmen").Range("c43").Value & . _
HTMLBody
.Display
Ich hätte den Code schon mit eingefügt, aber den Teil der für die Schriftart und die Größe zuständig ist wird nicht angezeigt. Hier wird die Schriftgröße gleich im Text geändert. Hier mache ich wohl etwas falsch!
Gruß
Detlef
Anzeige
Glaskugel
17.11.2018 11:28:48
RPP63
Moin!
Ich kann Dir nicht wirklich folgen.
Verkettest Du den Text in einer Zelle mit Zeilenumbruch?
Dann gibt es keine echten "Absätze".
Zeig doch mal die Datei.
Gruß Ralf
AW: Glaskugel
17.11.2018 12:10:58
Marquardt
Hallo Ralf,
Du hast recht! Beim Verketten wird der "Zeilenumbruch" mit Zeichen(10) dargestellt. Aber wenn ich den Text aus der Zelle in die Mail (HTML) kopiere, werden die Zeilenumbrüche nicht mehr dargestellt.
In einer Mail ohne HTML ist das möglich. Hier wird aber die Signatur nicht richtig dargestellt.
Gruß
Detlef
Anzeige
AW: Glaskugel
17.11.2018 12:17:21
RPP63
Ich hatte nicht Recht! ;)
Aber gut, in HTML ist der Zeilenumbruch nicht Chr(10), sondern (ohne Leerzeichen)
https://wiki.selfhtml.org/wiki/HTML/Textauszeichnung/br
Du musst also =WECHSELN(DeinText;ZEICHEN(10);"")
(wieder ohne Leerzeichen)
Gruß Ralf
AW: Glaskugel
17.11.2018 12:51:50
Hajo_Zi
Hallo Ralf,
fehlt da nicht hinter Br "/"

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
<br> ist solitär u.d.WebSite-Aufruf fktt auch so!
17.11.2018 15:28:34
Luc:-?
:-?
AW: Glaskugel
17.11.2018 16:25:23
Marquardt
Hallo Ralf,
was Du mit der Anspielung "Ich hatte Recht!" meinst, verstehe ich nicht ganz. Aber gut.
Das mit dem "Wechseln" ist einfach super!! Damit hast Du mir eine Menge Arbeit erspart.
Ich wünsche Dir noch ein schönes WE.
Gruß
Detlef
AW: Text aus Excel in Mail einfügen HTML
17.11.2018 15:39:41
Karl-heinz
Hi Detlef,
falls Deine Frage noch nicht gelöst ist, hier noch mal ein Ansatz:
Leider hast Du nicht geschrieben, wie Du Deinen Text in die Mail kopiert. Manuell aus einer Zelle?
Falls es im Rahmen einer VBA-Routine ist, mit z.B. ".html.body=", hätte ich da vielleicht etwas für Dich. Der nachfolgende Code ermittelt Text und einige Formatparameter aus der angegebenen Zelle und setzt diese in HTML um.
Sub Test()
Debug.Print GetFont(Range("A1"))
End Sub

Function GetFont(Obj As Range) As String
Dim T1 As String, T2 As String
With Obj.Font
If .Bold Then T1 = "<strong>": T2 = "</strong>"
If .Italic Then T1 = T1 & "<i>": T2 = T2 & "</i>"
If .Underline = xlUnderlineStyleSingle Then T1 = T1 & ""<u>": T2 = T2 & "</u>"
GetFont = T1 & "<span style='font-size:" & .Size & "pt;font-family:" _
& .Name & ";color:#" _
& Right$("0" & Hex(.Color And vbRed), 2) _
& Right$("0" & Hex((.Color And vbGreen) \ &H100), 2) _
& Right$("0" & Hex((.Color And vbBlue) \ &H10000), 2) _
& "'>" & Replace(Obj.Value, vbLf, "<br>") & "</span>"<br>" & T2
End With
End Function
Ansonsten vermute ich, dass Deine Angabe zur Schriftgröße in normalem, alten Font-Size-Tag umgesetzt wird. Da gibt es nur 1,2,3,4,5 aber nicht 11. Du müsstest die Pt-Form innerhalb eines Styles verwenden.
Und Hajo's Einwand ist nicht relevant. Die Urform "<br>" ist ohne "\" und funktioniert noch bestens.
viele Grüße
Karl-Heinz
Anzeige
AW: Text aus Excel in Mail einfügen HTML
17.11.2018 16:16:41
Marquardt
Hallo Karl-Heinz,
vielen Dank für die Antwort.
Super.
Ein schönes WE noch.
Gruß
Detlef
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Text aus Excel in eine HTML-Mail übernehmen


Schritt-für-Schritt-Anleitung

  1. Text in Excel vorbereiten: Stelle sicher, dass der Text, den Du in die Mail einfügen möchtest, korrekt in einer Zelle, z.B. C43, verketten wird. Achte darauf, dass Du Zeilenumbrüche nicht als Chr(10) verwendest, sondern statt dessen HTML-Tags wie <br> für Absätze.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. VBA-Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub SendEmail()
       Dim objOutlook As Object
       Dim objMail As Object
       Set objOutlook = CreateObject("Outlook.Application")
       Set objMail = objOutlook.CreateItem(0)
    
       With objMail
           .To = "empfaenger@example.com" ' Empfänger hier einfügen
           .CC = "" ' CC hier einfügen
           .BCC = "" ' BCC hier einfügen
           .Subject = "Betreff der Mail"
           .HTMLBody = "<font face='Calibri' size='2'>" & _
                       Replace(Sheets("DeinBlatt").Range("C43").Value, vbLf, "<br>") & _
                       "</font>"
           .Display ' Oder .Send um die Mail direkt zu senden
       End With
    End Sub
  5. Anpassen des Codes: Ersetze empfaenger@example.com mit der tatsächlichen E-Mail-Adresse des Empfängers und passe den Blattnamen an.

  6. Ausführen des Codes: Drücke F5, um das Makro auszuführen und die Mail zu erstellen.


Häufige Fehler und Lösungen

  • Problem: Absätze werden nicht in der Mail angezeigt.

    • Lösung: Stelle sicher, dass Du Zeilenumbrüche in Excel mit vbLf in <br> umwandelst, wie im obigen Code gezeigt.
  • Problem: Schriftgröße wird nicht wie gewünscht angezeigt.

    • Lösung: Verwende CSS für die Schriftgröße, z.B. font-size: 11pt; im Style-Tag, anstatt die Größe direkt im HTML-Tag zu setzen.

Alternative Methoden

Eine alternative Methode, um HTML in eine Mail einzufügen, ist die Verwendung von .SendKeys für das Kopieren des formatierten Textes direkt aus Excel. Beachte jedoch, dass diese Methode weniger stabil ist und von der Benutzerinteraktion abhängt.


Praktische Beispiele

  • Beispiel für HTML-Body:

    .HTMLBody = "<p style='font-family:Calibri; font-size:11pt;'>" & _
              "Dies ist ein Beispiel für HTML in einer Mail." & _
              "</p><br><p>Hier ist ein neuer Absatz.</p>"
  • Text mit Leerzeichen in HTML: Um Leerzeichen einzufügen, kannst Du &nbsp; verwenden:

    .HTMLBody = "<p>Text mit&nbsp;Leerzeichen.</p>"

Tipps für Profis

  • Verwende CSS für eine bessere Kontrolle über das Layout Deiner HTML-Mail.
  • Teste den HTML-Code in einem Browser, um sicherzustellen, dass das Layout wie gewünscht aussieht.
  • Achte darauf, dass nicht alle E-Mail-Clients HTML gleich rendern. Halte das Design einfach.

FAQ: Häufige Fragen

1. Wie kann ich HTML-Formatierungen in eine Mail einfügen?
Verwende das HTMLBody-Attribut des Mailobjekts, um HTML-Code einzufügen.

2. Welche HTML-Tags kann ich verwenden?
Die gängigen Tags wie <b>, <i>, <u>, <br> und <p> funktionieren in den meisten E-Mail-Clients.

3. Warum werden meine Zeilenumbrüche nicht angezeigt?
In HTML musst Du für Zeilenumbrüche <br> verwenden, anstelle von Excel-Zeilenumbrüchen.

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