Clever-Excel-Forum

Normale Version: VBA: Foto in Mail einfügen und versenden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Morgen liebe Community,

ich hätte eine Cross-Frage welche Excel in Kombination mit Outlook betrifft (wenn ich hier im richtigen Forumsteil bin)?

Ich möchte eine Range eines anderen Blattes (im selben Workbook) "fotografieren" (was ich mit CopyPicture soweit auch hinbekomme).

Nun möchte ich aber dieses Bild, welches meines Wissens ja in der Zwischenablage sein sollte, in eine E-Mail kopieren und dieses automatisch vor dem Schließen versenden.

Nun habe ich zwei Probleme:
1. Das Foto wird nicht eingefügt (auch bei vorherigen Versuchen nicht)
2. Das Mail wird nicht verschickt (was aber wohl am Code für das Foto liegen könnte, da das Mail ohne Foto sondern mit gegebenem Text korrekt versandt wurde).

Hier mein Ansatz:
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim objOut As Object
Dim objMail As Object
Dim Foto As Object

Set Foto = Tabelle1.Range("A1:B10").CopyPicture(xlScreen, xlBitmap)
Set objOut = CreateObject("Outlook.Application")
Set objMail = objOut.createitem(0)

objMail.Subject = "Änderung an Test-Mappe"
objMail.Body = "Diese Mappe wurde geändert"
Foto.GetFromClipboard
objMail.htmlbody = Foto.GetText(1)
objMail.to = "meineadresse@unbekannt.de"
objMail.Send
Weiß jemand eine Möglichkeit, wie ich das Foto in den Mail-Body einfügen kann und das Mail versendet wird?

Danke für eure Hilfe

Gruß Domi
Hallo,

es gab vor einige Tagen eine Diskussion zu diesem Thema in "office-loeseung.de"

Mein Vorschlag war:

Code:
Sub Chart_verschicken()
Dim OL As Object: Set OL = CreateObject("Outlook.Application")
Dim EML As Object
ActiveSheet.Shapes(1).Copy ' <<< hier das ".CopyPicture

With OL
    Set EML = .CreateItem(0)
    EML.to = "M.Meyer@Firma.de"
    EML.Subject = "Täglicher Chart"
    EML.Body = "Hallo Herr Meyer," & vbCrLf & vbCrLf
    With EML.getInspector
        .display
        With .WordEditor.Application.Selection ' <<< im "Unterbau" ist Word
          .Start = Len(EML.Body) + 1
          .Paste                                 ' Bereich in Mail einfügen
      End With
    End With
    'eml.send
End With

Es scheint aber Unterschiede zwischen Office-Versionen zu geben.

mfg

Link: http[:]//www.office-loesung.de/p/viewtopic.php?f=166&t=872475&sid=a293b8a5a6a61413609355f5af542dc2
Hallo Fennek,

habe deinen Code gerade angepasst und ausprobiert - genau das hatte ich gesucht (hatte aber den Beitrag den du beim office-forum gepostet hast nicht gefunden^^)

Danke dir und noch einen guten Wochenstart,

Domi