gluehbirne
Goto Top

Pfad eines in Sheet eingebetteten Bildes

Hi!

ich möchte gerne ein in ein tabellenblatt eingefügtes bild in eine email anhängen und einbetten. das alles klappt ganz gut mit pfaden auf die entsprechenden bilder. jetzt muss ich aber ein bild in ein excel-sheet einfügen und mit in die email einbetten. folgenden code verwende ich dafür:

Dim objlogo As Object
Dim emblogo As String

Set objlogo = imsg.addrelatedbodypart(Workbooks(ActiveWorkbook.Name).Worksheets("sicherung").Pictures("Grafik 1"), "embedded2", cdoreftypeid)  
objlogo.Fields.Item("urn:schemas:mailheader:Content-id") = "<embedded2>"  
objlogo.Fields.Update
emblogo = "<img src=" & Chr(39) & "cid:embedded2" & Chr(39) & ">"  

auch hier kommt der fehler
 ActiveSheet.Shapes.Range(Array("Grafik"))   

es kommt immer der fehler "datentypen" unverträglich. bekomme ich irgendwie einen ganz normalen pfad der grafik her?

für jede idee sehr dankbar.

mfg
gluehbirne

Content-Key: 232743

Url: https://administrator.de/contentid/232743

Printed on: April 25, 2024 at 16:04 o'clock

Member: colinardo
Solution colinardo Mar 16, 2014 updated at 14:57:19 (UTC)
Goto Top
Hallo gluehbirne,
bekomme ich irgendwie einen ganz normalen pfad der grafik her?
nein, bekommst du nicht so einfach. Hier musst du entweder mit der .CopyPicture Methode des Shapes arbeiten um die Grafik in die Zwischenablage zu kopieren, und dann in der Nachricht wieder einzufügen, oder du nutzt diese Methode um diese Grafik in ein Chart-Objekt einzfügen welches die gleiche Größe wie das Bild bekommt, denn das Chart-Objekt bietet eine Funktion (Export) um den Inhalt als Bild in das Dateisystem zu exportieren. Von da aus kannst du es dann in deine Mail einbauen.
http://stackoverflow.com/questions/18232987/export-pictures-from-excel- ...

back-to-topBeispiel Shape als Bild abspeichern:
Sub TestExport()
    Set myshape = Worksheets(1).Shapes(1)
    SaveShapeAsImage myshape, "D:\image.jpg", "JPG"  
End Sub


Sub SaveShapeAsImage(ByVal shp As Shape, strPath As String, fileFormat As String)
    Dim co As ChartObject
    shp.CopyPicture
    Set co = ActiveWorksheet.ChartObjects.Add(500, 500, 100, 100)
    With shp
        co.Width = .Width
        co.Height = .Height
    End With
    co.Chart.Paste
    co.Chart.Export strPath, fileFormat
    co.Delete
End Sub
jetzt muss ich aber ein bild in ein excel-sheet einfügen und mit in die email einbetten.
Warum nutzt du dann nicht den Pfad des Bildes welchen du zum Einbetten in Excel genommen hast ?

Grüße Uwe
Member: gluehbirne
gluehbirne Mar 16, 2014 at 14:56:49 (UTC)
Goto Top
hallo colinardo / uwe,

es funktioniert einwandfrei. besten dank hierfür. ich eportiere das bild nun in thisworkbook.path, anschließend wird es in die email eingebunden und dann wieder gekillt.

ich wollte es so machen, dass die künftigen anwender nur eine datei brauchen. das in die email eingefügte bild ist ein logo, welches aber die anwender nicht haben bzw. nicht immer am gleichen speicherort. daher die idee es mit in die excel-datei zu packen und daraus in die mail zu laden.

ich weiß ja nicht was du tust - aber ich bewundere es, dass du scheinbar immer eine lösung findest - scheinbar recherchiere ich falsch ^^

tausend dank nochmal

mfg gluehbirne
Member: colinardo
colinardo Mar 16, 2014 updated at 16:38:36 (UTC)
Goto Top
Zitat von @gluehbirne:
ich weiß ja nicht was du tust - aber ich bewundere es, dass du scheinbar immer eine lösung findest - scheinbar
recherchiere ich falsch ^^
Also ich bin einer der Sorte, die erst mal die Hilfen und Referenzen der jeweiligen Programme studieren als immer direkt Google zu bemühen face-wink (0,3 kWh Strom / Google-Anfrage sind mir dafür dann doch zu viel). Sicher gehört auch Erfahrung dazu, aber wenn du unbedingt Google dazu benutzen willst sei dir unbedingt angedacht, auf Englisch zu suchen => das bringt dir mehr gute Ergebnisse.

Grüße Uwe