Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bild in Email einfügen

Bild in Email einfügen
28.12.2018 18:53:33
Larissa
Hallo,
ich möchte ein Bild in eine Email über ein Makro einfügen.
Der Pfad steht in einer Exceltabelle.
Es hatte immer funktioniert und plötzlich nicht mehr.
Das entsprechende Teil im Makro sieht so aus:
---
sText = sText & "
sText = sText & Sheets("Text").Range("B3").Value & ">"
---
Der Pfad steht in Zelle B3
C:\Users\Promo Plüsch\Desktop\Christian\Fotos\CM_em.JPG
Wo hat sich denn da ein Fehler eingeschlichen?
Könnt Ihr mir bitte helfen?
1000 Dank!!
Larissa
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bild in Email einfügen
28.12.2018 20:35:07
Nepumuk
Hallo Larissa,
zeig uns bitte deinen Code. Mit einem nicht angezeigten Bild können wir nichts anfangen.
Gruß
Nepumuk
AW: Bild in Email einfügen
29.12.2018 00:36:04
Karl-Heinz
Hallo Larissa,
leider ist Deine Aussage "plötzlich nicht mehr" und der Makroschnipsel nicht sehr aussagekräftig.
Ich stand vor einiger Zeit nach dem Umstieg von Office 2007 auf Office 365 vor dem Problem, dass Bilder aus Dateien nicht mehr eingebettet wurden, sondern nur noch als Referenz in der Mail geführt wurden. Mit dem Ergebnis, dass nach Mail-Versand die Bilder nicht mehr vorhanden waren, weil der Bezug zur Ursprungsquelle fehlte.
Falls dies Dein Problem sein sollte, hier mal ein Ansatz, wie Du das lösen könntest:
Sub eMail()
Dim olkPA As Object, Pfad As String, Datei As String, sText As String
Const PR_ATTACH_CONTENT_ID = "http://schemas.microsoft.com/mapi/proptag/0x3712001F"
Pfad = "C:\Users\Promo Plüsch\Desktop\Christian\Fotos\CM_em.JPG" 'Aus Zelle B3
Datei = Mid(Pfad, InStrRev(Pfad, "\") + 1) 'Dateinamen extrahieren
With CreateObject("Outlook.Application").CreateItem(0)
 With .Attachments
   Set olkPA = .Add(Pfad).PropertyAccessor   'Imagedatei als Anhang hinzufügen
   olkPA.SetProperty PR_ATTACH_CONTENT_ID, Datei 'Imagedatei hidden mit cid verknüpfen
 End With
  sText = sText & "<img src=""cid:" & Datei & """>" 'Imagedatei in Mailtext aufnehmen
  .htmlbody = sText
  .display
End With
End Sub

VBA=>HTML, (c) 2018 by KHV

viele Grüße
Karl-Heinz

Anzeige
AW: Bild in Email einfügen
29.12.2018 08:15:09
Larissa
Oh entschuldigung, ich habe gar nicht bemerkt, dass der Code sich nach dem Veröffentlichen verändert hat. Auf meinem Rechner ist Office Professional Plus 2013 installiert, aber das konnte ich hier im Forum nicht auswählen. Ich dachte, 2013 Office 365 ist das gleiche, was Excel angeht. Ich habe die Version aber nicht geändert, deshalb ist der Lösungsvorschlag von Karl-Heinz vielleicht nicht richtig. Deshalb füge ich jetzt einfach mal den ganzen Code ein, damit es klarer wird:

Sub Email_mit_Anhang()
Dim sSheet As String
Dim sText As String
Dim sTo As String
Dim sSubject As String
Dim sAttach As String
Dim lRow As Long
Dim myRng As Range
With ActiveSheet
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
sSubject = Sheets("Text").Range("A2").Value 'Betreff
For Each myRng In .Range(.Cells(2, 1), .Cells(lRow, 1))
If myRng.Value = "x" Then
sTo = .Cells(myRng.Row, 11).Value 'Emailadresse
sText = ""
sText = sText & .Cells(myRng.Row, 6) & "
" 'Anrede sText = sText & Sheets("Text").Range("B2").Value 'Emailtext 'Bild sText = sText & "" sText = sText & "" & "
sText = sText & Sheets("Text").Range("B4").Value 'Emailtext sAttach = .Cells(myRng.Row, 13) Call SendMailOutlook(sSubject, sTo, sText, sAttach) 'verschicken End If Next myRng End With End Sub

Merkwürdig, die Zeile mit dem Bild hat sich schon wieder verändert.
Gut, dann lade ich auch noch die komplette Mappe hoch, da sollte es doch für Euch zu sehen sein, richtig?
https://www.herber.de/bbs/user/126367.xlsm
Anzeige
AW: Bild in Email einfügen
29.12.2018 08:48:32
Nepumuk
Hallo Larissa,
du hast Recht, da kommt wirklich kein Bild obwohl du im Code augenscheinlich alles richtig gemacht hast.
Ich bin allerdings nicht unbedingt der Experte für Outlook und HTML. Vielleicht hilft es mal in einem extra Outlook-Forum nachzufragen. Z.B. hier: http://www.office-loesung.de/p/viewforum.php?f=165
Gruß
Nepumuk
Anzeige
AW: Bild in Email einfügen
29.12.2018 09:17:54
Larissa
Danke Nepumuk, ich habe die Frage im Outlook Forum gepostet.
Hoffentlich findet sich die Lösung.
AW: Bild in Email einfügen
29.12.2018 10:44:46
mumpel
Hallo!
Da ist ein Fehler im Code. Links müssen immer in Anführungszeichen (oder in einem Hochkomma) stehen. Weshalb die alte Officeversion das kompensieren konnte weiss ich nicht.
Beispiel:
'Bild 
sText = sText & "<img src='"
sText = sText & Sheets("Text").Range("B3").Value & "'>"

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß, René
Anzeige
AW: Bild in Email einfügen
29.12.2018 11:04:51
Larissa
das ist ja unglaublich, jetzt funktioniert es!!!
Verstehe ich auch nicht, warum es vorher funktionierte.
Aber egal ;)
Danke Rene
;

Forumthreads zu verwandten Themen

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

Bild in E-Mail einfügen mit Excel und Outlook


Schritt-für-Schritt-Anleitung

Um ein Bild direkt in eine E-Mail einzufügen, kannst Du ein VBA-Makro in Excel verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem Du auf Einfügen > Modul klickst.

  3. Kopiere und füge folgenden Code in das Modul ein:

    Sub Email_mit_Anhang()
       Dim sSheet As String
       Dim sText As String
       Dim sTo As String
       Dim sSubject As String
       Dim sAttach As String
       Dim lRow As Long
       Dim myRng As Range
    
       With ActiveSheet
           lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
           sSubject = Sheets("Text").Range("A2").Value 'Betreff
           For Each myRng In .Range(.Cells(2, 1), .Cells(lRow, 1))
               If myRng.Value = "x" Then
                   sTo = .Cells(myRng.Row, 11).Value 'Emailadresse
                   sText = "<font style='font-family: calibri; font-size:12px;'>"
                   sText = sText & .Cells(myRng.Row, 6) & "<br>" 'Anrede
                   sText = sText & Sheets("Text").Range("B2").Value 'Emailtext
                   'Bild einfügen
                   sText = sText & "<img src='" & Sheets("Text").Range("B3").Value & "'>" 'Pfad zu Bild
                   sText = sText & "<br>" & Sheets("Text").Range("B4").Value 'Zusätzlicher Text
                   sAttach = .Cells(myRng.Row, 13)
                   Call SendMailOutlook(sSubject, sTo, sText, sAttach) 'verschicken
               End If
           Next myRng
       End With
    End Sub
  4. Passe die Pfade in den Zellen an, damit sie auf Deine Daten verweisen.

  5. Führe das Makro aus, um das Bild in der E-Mail einzufügen.


Häufige Fehler und Lösungen

  • Bild wird nicht angezeigt: Überprüfe, ob der Pfad zum Bild korrekt ist. Stelle sicher, dass der Pfad in der Zelle B3 korrekt eingegeben ist.
  • Bild wird als Anhang gesendet: Wenn das Bild in der E-Mail nicht als eingebettetes Bild angezeigt wird, könnte es daran liegen, dass der Code nicht korrekt formuliert ist. Stelle sicher, dass der HTML-Code für das Bild korrekt ist, wie im obigen Beispiel.
  • Links ohne Anführungszeichen: Achte darauf, dass alle Links in Anführungszeichen stehen, da sonst der Code nicht funktioniert.

Alternative Methoden

Es gibt verschiedene Alternativen, um ein Bild in eine E-Mail einzufügen:

  • Manuelles Einfügen: Du kannst auch direkt in Outlook ein Bild einfügen, indem Du in die E-Mail klickst und über Einfügen > Bilder das gewünschte Bild auswählst.
  • HTML-E-Mails: Du kannst HTML verwenden, um Bilder in Deinen E-Mails darzustellen. Dies erfordert jedoch Kenntnisse in HTML und CSS.

Praktische Beispiele

Hier ist ein Beispiel, wie Du ein Bild in eine E-Mail einfügen kannst:

  1. Bild in Excel: Angenommen, der Pfad zum Bild ist in Zelle B3:

    C:\Users\Promo Plüsch\Desktop\Christian\Fotos\CM_em.JPG
  2. E-Mail-Text: Der E-Mail-Text kann in Zelle B2 stehen:

    Hallo, hier ist das Bild!
  3. E-Mail senden: Mit dem oben genannten Makro wird das Bild in den E-Mail-Text eingefügt und als HTML angezeigt.


Tipps für Profis

  • Verwende absolute Pfade: Stelle sicher, dass Du absolute Pfade verwendest, damit Outlook die Bilder korrekt finden kann.
  • Testen in verschiedenen Outlook-Versionen: Achte darauf, dass Dein Code in verschiedenen Outlook-Versionen getestet wird, da es Unterschiede in der Unterstützung von HTML geben kann.
  • Bilder komprimieren: Wenn Du viele Bilder in E-Mails verwendest, komprimiere diese, um die Größe der E-Mail zu reduzieren.

FAQ: Häufige Fragen

1. Wie kann ich ein Bild in eine E-Mail einfügen, ohne dass es als Anhang erscheint?
Verwende den HTML-Code <img src='Pfad zum Bild'> in Deinem E-Mail-Text. Achte darauf, dass der Pfad korrekt ist.

2. Funktioniert das auch in älteren Excel-Versionen?
Ja, die meisten VBA-Codes funktionieren in Excel 2013 und später. Stelle sicher, dass Du den Code entsprechend anpasst.

3. Was mache ich, wenn das Bild nicht angezeigt wird?
Überprüfe zuerst den Pfad zum Bild und stelle sicher, dass er korrekt eingegeben ist. Außerdem sollten die Bilder für den Empfänger zugänglich sein.

4. Kann ich mehrere Bilder in eine E-Mail einfügen?
Ja, Du kannst mehrere <img>-Tags im HTML-Code verwenden, um mehrere Bilder in der E-Mail anzuzeigen.

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