Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Bild in HTML Body für Mail

Forumthread: VBA Bild in HTML Body für Mail

VBA Bild in HTML Body für Mail
12.07.2013 21:58:58
Raphael
Hallo zusammen,
ich benötige wieder einmal eure Hilfe.
Ich habe die allseits bekannte Funktion RangetoHTML im Einsatz, diese funktioniert für alles was Text ist perfekt. Jetzt habe ich aber eine Tabelle in der sich auch Bilder befinden und diese sollten ebenfalls ins email kopiert werden. Nutze ich die RangetoHTML erscheint mir nur ein weisser Rahmen ohne Bild.
https://www.herber.de/bbs/user/86336.xlsm
Weiss jemand Rat?
Gruess
Raphael

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Eigentlich kann ich nur sagen, dass der ...
13.07.2013 03:16:28
Luc:-?
…BildCode offensichtlich in den HTML-Text integriert wird, Raphael,
aber mit der Auswertung der png-Source (…001.png) scheints dann zu hapern, weil noch eine andere, wohl ein StandardQuellOrdner mit …002.gif angegeben wird, auf der nichts gefunden wird und selbst, wenn man das anlegt, nichts passiert. Wäre allerdings Quatsch, bei einer eMail auf eine externe Bildquelle zu verweisen, wenn man keinen eigenen WebServer bzw -Site hat bzw eine(n) stets zugängliche(n) benutzt, auf dem/der das dann abzuholen ist.
Kenne diese angeblich allgemein bekannte Fkt (UDF) nicht und weiß damit also auch nicht, was dazu noch im Hintergrund benötigt wird bzw getan wdn muss. Mein eigenes Verfahren heißt fast genauso, integriert aber keine BildCodes. Sieh dir also mal den generierten HTML-Quelltext an und probiere aus, ob du mit irgendeinem HTML-Editor oder evtl Rückspeichern nach Xl (dafür gibt's auch ein Tool, evtl kann nur das - über die xlWeb-Fktionalität -, das dann entschlüsseln) weiter kommst.
Aber vielleicht weiß ja jemand mehr darüber…
Morrn, Luc :-?

Anzeige
AW: Dazu könntest Du...
14.07.2013 20:49:29
Raphael
Hallo Luc:-?, Hallo Case
besten Dank, Luc:-?, für den Hinweis, dass es bei dir funktioniert. Ich bin jetzt fasst Irre geworden weil ich es nicht gebacken bekam (mein Laptop hat Office 2007).
Als ich dann meine eigene Musterdatei nochmals bei Herber heruntergeladen habe und den Code eingefügt habe funktionierte es plötzlich auch auf Office 365.
Lange Rede kurzer Sinn, die Quintessenz ist:
Meine Datei hiess: BIFA Liquidationen 2.xlsx (man beachte die vielen Leerzeichen)
Nach umbenennen in: BIFA_Liquidationen_2.xlsx (man beachte die fehlenden Leerzeichen)
funktionierte es einwandfrei.
Darauf gekommen bin ich als ich die zwei filelist.xml miteinander verglich.
Case tut mir leid, war mein Fehler.
Freundliche Grüsse
Raphael

Anzeige
AW: VBA Bild in HTML Body für Mail
14.07.2013 13:28:32
Raphael
Hallo Luc:-?, Hallo Case,
leider konnte auch dieser Code kein Abhilfe schaffen, das Problem liegt wirklich daran, dass er die Bilder nicht mit ins Mail steckt. Wenn ich sie nachkopiere stimmt der Pfad im Html Body nicht. Vielleicht hat noch jemand eine andere Variante.
Gruess
Raphael

Anzeige
Also, ich habe den von Case verlinkten ...
14.07.2013 15:03:30
Case
…„Isabellen-Code“ auch ausprobiert, Raphael;
zumindest beim Display der erzeugten Mail ist das Bild unter Office2007 drin. Ebenso wdn auch Zellmuster und -farben berücksichtigt, auch aus BedingtFormat. Nicht berücksichtigt wdn BedingtFormat-Symbole u.-Datenbalken, sowie manche Zellrahmen (abschld unterer TabRahmen u.evtl DiagonalRahmen). Es kann allerdings im Zusammenhang mit Bildern zu Zeilenverschiebungen durch willkürliche Einfügung von Leerzeilen kommen (außer bei Bild in VbZelle, dann treten allerdings merkwürdige Rahmenfehler unter dem (und unterhalb des) Bild(es) auf.
Da du aber schon das stark kritisierte Office2013 verwendest, könnte es sein, dass wieder irgendetwas geändert wurde und nun nicht mehr so wie bisher fktioniert…
Gruß Luc :-?

Anzeige
AW: Also, ich habe den von Case verlinkten ...
14.07.2013 23:46:41
Case
Doppelpost, hab mich beim antworten vertan
Hallo Luc:-?, Hallo Case
besten Dank, Luc:-?, für den Hinweis, dass es bei dir funktioniert. Ich bin jetzt fasst Irre geworden weil ich es nicht gebacken bekam (mein Laptop hat Office 2007).
Als ich dann meine eigene Musterdatei nochmals bei Herber heruntergeladen habe und den Code eingefügt habe funktionierte es plötzlich auch auf Office 365.
Lange Rede kurzer Sinn, die Quintessenz ist:
Meine Datei hiess: BIFA Liquidationen 2.xlsx (man beachte die vielen Leerzeichen)
Nach umbenennen in: BIFA_Liquidationen_2.xlsx (man beachte die fehlenden Leerzeichen)
funktionierte es einwandfrei.
Darauf gekommen bin ich als ich die zwei filelist.xml miteinander verglich.
Case tut mir leid, war mein Fehler.
Freundliche Grüsse
Raphael

Anzeige
Na, dann iss ja jut...! Gruß owT
15.07.2013 01:52:06
Luc:-?
:-?
;
Anzeige

Infobox / Tutorial

Bilder in HTML Body von VBA E-Mails einfügen


Schritt-für-Schritt-Anleitung

  1. Vorbereitung des Excel-Dokuments: Stelle sicher, dass deine Datei an einem leicht zugänglichen Ort gespeichert ist. Benenne die Datei so, dass keine Leerzeichen vorhanden sind, da dies zu Problemen führen kann. Zum Beispiel: BIFA_Liquidationen_2.xlsx.

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

  3. Modul einfügen: Klicke im Menü auf Einfügen und wähle Modul.

  4. Code für HTML Body einfügen: Füge den folgenden Code in das Modul ein:

    Sub SendEmailWithImage()
       Dim OutApp As Object
       Dim OutMail As Object
       Dim strHTML As String
    
       Set OutApp = CreateObject("Outlook.Application")
       Set OutMail = OutApp.CreateItem(0)
    
       ' HTML Body mit Bild und Text
       strHTML = "<html><body>" & _
                 "<h1>Mein Bild</h1>" & _
                 "<img src='file:///C:/Pfad/zum/DeinemBild.png' alt='Bild' style='width:300px;height:auto;'>" & _
                 "<p>Text neben dem Bild.</p>" & _
                 "</body></html>"
    
       With OutMail
           .To = "empfaenger@example.com"
           .Subject = "Betreff der E-Mail"
           .HTMLBody = strHTML
           .Display ' oder .Send um direkt zu senden
       End With
    
       Set OutMail = Nothing
       Set OutApp = Nothing
    End Sub
  5. Bildpfad anpassen: Achte darauf, den Pfad zum Bild korrekt anzugeben. Das Bild sollte lokal auf deinem Computer gespeichert sein oder auf einem Server verfügbar sein.

  6. E-Mail senden: Führe das Makro aus, um die E-Mail mit dem Bild im HTML Body zu senden.


Häufige Fehler und Lösungen

  • Bild wird nicht angezeigt: Vergewissere dich, dass der Pfad zum Bild korrekt ist und dass das Bild im unterstützten Format (z.B. PNG, JPG) vorliegt.

  • Leerzeichen im Dateinamen: Wenn der Dateiname Leerzeichen enthält, kann dies zu Problemen führen. Benenne die Datei um, um Leerzeichen zu entfernen.

  • HTML Body wird nicht korrekt dargestellt: Stelle sicher, dass der HTML-Code korrekt ist. Nutze einen HTML-Editor, um sicherzustellen, dass der Code keine Fehler enthält.


Alternative Methoden

  • Verwendung von RangetoHTML: Diese Methode funktioniert gut für Text, kann aber Probleme mit Bildern haben. Überprüfe, ob dein Code die Bilder korrekt einfügt.

  • Bilder in die E-Mail einfügen: Eine andere Möglichkeit ist, die Bilder direkt in den E-Mail-Anhang einzufügen und dann im HTML Body auf den Anhang zu verweisen. Dies kann mit dem Attachments.Add Befehl erreicht werden.


Praktische Beispiele

  • E-Mail mit Bild und Text: Das oben angegebene Beispiel zeigt, wie man ein Bild in den HTML Body einfügt. Du kannst den Text neben dem Bild ganz einfach anpassen.

  • Bild aus einer Excel-Zelle einfügen: Du kannst auch ein Bild, das in einer Excel-Zelle gespeichert ist, in den HTML Body einfügen, indem du den entsprechenden Zellenbereich als Bild exportierst und dann in den HTML Code einfügst.


Tipps für Profis

  • HTML-Syntax prüfen: Achte darauf, dass deine HTML-Syntax korrekt ist, insbesondere wenn du Text neben dem Bild in HTML formatierst.

  • Grafikserver verwenden: Wenn du die E-Mails häufig versendest, könnte es sinnvoll sein, einen Grafikserver zu verwenden, um die Bilder zu hosten. So ist sichergestellt, dass die Bilder immer verfügbar sind.

  • Testen auf verschiedenen Geräten: Teste die E-Mails auf verschiedenen Geräten und E-Mail-Clients, um sicherzustellen, dass die Darstellung überall gleich ist.


FAQ: Häufige Fragen

1. Warum wird mein Bild nicht angezeigt?
Stelle sicher, dass der Bildpfad korrekt ist und dass das Bild im richtigen Format vorliegt. Prüfe auch, ob das Bild lokal oder auf einem Server gespeichert ist.

2. Wie kann ich Text neben einem Bild im HTML Body einfügen?
Du kannst dies erreichen, indem du den HTML-Code entsprechend anpasst. Füge den gewünschten Text nach dem <img> Tag ein und verwende Stile, um das Layout zu gestalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige