Clever-Excel-Forum

Normale Version: Diagramme per Mail verschicken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebes Forum,

ihr habt mir in der Vergangenheit schon sehr geholfen und ich brauche leider erneut eure Hilfe.
Ich möchte gerne ein Diagramm aus einer Exceltabelle automatisch per Knopfdruck verschicken. Aber nicht als Anhang, sondern in dem HTML-Code eingebunden.
Ich hab schon einiges ausprobiert, aber leider scheitere ich. Ich hab auch hier im Forum nachgeschaut, aber leider nichts gefunden. Vielleicht habt ihr eine Idee.
Aus dem Web habe ich folgenden Code gefunden (.Attachments.Add strDiaBild habe ich als Kontrolle eingefügt um zu sehen ob das Diagramm exportiert wird) :

Code:
Sub MailSenden()
  Dim objNachricht As Object
  Dim objMail As Object
  Dim strDiaBild As String
  strDiaBild = Environ$("temp") & Format(Now, "nnmmss") & ".jpg"
  DiaExportieren strDiaBild
  Set objMail = CreateObject("Outlook.Application")
  Set objNachricht = objMail.CreateItem(0)
  With objNachricht
      .To = "Deine@Mailadresse"
      .Subject = "Erinnerung"
      ' normaler Text + Tabellenausschnitt in HTML + Diagramm + weiterer normaler Text
      ' < br>< br> entspricht 2 Zeilenumbrüchen
      .HtmlBody = "Sehr geehrte Damen und Herren,< br>< br>" & _
            "Jetzt kommt ein Bild" & "< br>< br>< img src=" & strDiaBild & ">< br >< br>" & "Am Ende dann die Unterschrift"
      .Attachments.Add strDiaBild
      .ReadReceiptRequested = False
      .display
      '.send
  End With
  Set objNachricht = Nothing
  Set objMail = Nothing
  Kill strDiaBild
End Sub

Sub DiaExportieren(strBild)
    Dim chDiagramm As Chart    ' Variable für Diagramm als Objekt
'  Diagramm1 der aktiven Tabelle auf Variable schreiben
    Set chDiagramm = ActiveWorkbook.Worksheets("Mail").ChartObjects("Diagramm 1").Chart
'  Diagramm als JPG-Datei exportieren
    chDiagramm.Export Filename:=strBild, FilterName:="JPG"
End Sub


Der Code scheint auch fast zu funktionieren, im Anhang ist auch das Bild korrekt eingefügt, die Mail die rausgeht sieht aber so aus:

"

Sehr geehrte Damen und Herren,< br>< br>Jetzt kommt ein Bild< br>< br>< img src=C:\Users\alteresel\AppData\Local\Temp310141.jpg>< br >< br>Am Ende dann die Unterschrift

"

d.h. das jpg-Bild wird in der Mail nicht wiedergeben, sondern nur der temporäre Pfad.

Habt ihr vielleicht eine Idee wie ich das Bild angezeigt bekomme?

Vielen lieben Dank
Hallöchen,

passiert das auch, wenn Du noch

.BodyFormat = olFormatHTML

hinzufügst?
Hi schauan,

vielen lieben Dank für deine Antwort.

Ich hab die Anweisung jetzt einfach in den Code eingefügt:

With objNachricht
      .To = "Deine@Mailadresse"
      .Subject = "Erinnerung"
      ' normaler Text + Tabellenausschnitt in HTML + Diagramm + weiterer normaler Text
      ' < br>< br> entspricht 2 Zeilenumbrüchen
      .BodyFormat = olFormatHTML
      .HtmlBody = "Sehr geehrte Damen und Herren,< br>< br>" & _
            "Jetzt kommt ein Bild" & "< br>< br>< img src=" & strDiaBild & ">< br >< br>" & "Am Ende dann die Unterschrift"
      .Attachments.Add strDiaBild
      .ReadReceiptRequested = False
      .display


und es kommt als Meldung

Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument.

Hast du vielleicht noch eine andere Idee?

Danke
Hallöchen,

ich glaube aber nicht, dass das an dieser Codezeile liegt …

Ansonsten hier mal noch etwas ausformuliert:

Code:
With objNachricht
      .To = "Deine@Mailadresse"
      .Subject = "Erinnerung"
      .bodyformat = olFormathTML
      ' normaler Text + Tabellenausschnitt in HTML + Diagramm + weiterer normaler Text
      ' < br>< br> entspricht 2 Zeilenumbr?chen
      .HtmlBody = "<HTML><BODY>" & "Sehr geehrte Damen und Herren," & "<br><br>" & _
            "Jetzt kommt ein Bild" & "<br><br>" & "<img src= & strDiaBild & ">" & "<br><br>" & "Am Ende dann die Unterschrift" & "</BODY></HTML>"
'      .Attachments.Add strDiaBild
      .ReadReceiptRequested = False
      .display
      '.send
  End With