Bild von Tabellenblatt in Userform / ImageBox kopieren VBA Excel

Hallo

habe ein kleines Problem.

Ich habe ein Diagramm erstellt, welches den Hintergrund transparent hat. Ich exportiere es in ein gif-Format nur übernimmt er es nicht die transparenz.
Jetzt lade ich es auf ein Tabellenblatt und tausche die weisen Punkte aus zur transparenz.Das geht auch soweit ganz gut nur ich schaffe es nicht dieses bearbeitet Bild in die Userform (PictureBox/ImageBox) zu kopieren. Kann mir da jemand helfen.

Vielen Dank

Gruß David

Hallo David,

verstehe ich das richtig? Du hast eine UserForm und darauf eine Image- bzw. Picturebox in der du eine Tabelle als GIF-Grafik anzeigen lassen willst.

Für diesen Fall müsstest du auf jeden Fall die Imagebox nehmen, da diese transparente GIF’s normalerweise anzeigen kann. Dann musst du nur noch über die Property’s oder mittels Code die GIF-Datei laden.

Der Code hierfür wäre folgender:
Image1.Picture = LoadPicture(„C:…“)

Gruß
zero

Hallo David,

um dir da helfen zu können, benötige ich mehr Informationen, wo genau das Problem liegt. Eine Grafik fügt man gründsätzlich in eine UserForm ein über das Steuerelement „Anzeige“. Über die Eigenschaft „Picture“ des Steuerelements kannst du dann die dazustellende Datei wählen, also dein gif beispielsweise.

Welche Excel-Version benutzt du? Für weitere Hilfe benötige ich, wie gesagt, eine genaue Beschreibung, was nicht klappt.

Viele Grüße,
BellHouse

Hallo

das ist soweit richtig.
Ich bekomme das Gif-Picture auch mit deinem Befehl rein, nur geht die transparenz verloren beim abspeichern, deswegen lad ich es auf ein tabellenblatt neu die gespeicherte GIF mach per vba die weiße farbe transparent aber ich bekomme dieses bild nicht vom tabellenblatt in die imagebox in die userform hinein. keine ahnung warum.

Gruß David

Achso, jetzt weiß ich wo das Problem liegt.^^
Du speicherst wahrscheinlich die GIF falsch ab. Darf ich fragen mit welchem Programm du die GIF abspeicherst?

An VBA liegt es in diesem Fall nicht. Du hast nur die Möglichkeit die Grafik mittels ImageBox oder PictureBox einzufügen. Dazu muss die Grafik als Datei vorliegen. Eine Grafik aus einem Tabellenblatt in eine UserForm einfügen stelle ich mir schwierig bis unmöglich vor. Aber da bin ich überfragt.

Also, wenn die GIF richtig mit transparenz abgespeichert wurde, zeigt sie VBA in einer ImageBox auch ohne Probleme mit transparenz an. Voraussetzung ist halt eine richtige GIF.^^

Notfalls schick mir einfach mal deine Dateien, dann kann ich mehr sagen.^^

Hi

ich zeige dir mal den code.
Ich speichere das diagramm einfach mit vba als gif und rufe sie dann wieder auf.das geht auch super halt ohne transparenz.

Set Diagramm = WBPBChartName.ChartObjects(1).Chart
Diagramm.Parent.Width = Image1.Width
Diagramm.Parent.Height = Image1.Height

Dateiname = WBDBFolder & „Diagramm“ & Username & „.gif“
Diagramm.Export filename:=Dateiname, FilterName:=„GIF“
Image1.Picture = LoadPicture(Dateiname)

Gruß
David

Ahh Ok, ich glaub schön langsam komme ich auch mit.
Sry, steh wohl aufm Schlau :wink:

Also gut. Soweit ich weiß, lässt sich das mit VBA-Bordmitteln nicht lösen. Ich kenne zumindest keine Funktion in VBA die das macht. Aber in den Weiten des INet findet sich so allerhand. Z. b. eine eigene DLL, die genau das bewerkstelligt.

http://www.vbarchiv.net/tipps/tipp_425-bilder-nach-b…

Hier müsstest du wohl die Datei wie bisher erstellen, danach mittels dieser DLL konvertieren. Und mit TransparentGIF = True, wird die Farbe die der unterste linke Pixel hat auf transparent gesetzt.

Ist zwar ein weiter Umweg, aber am Ende müsste es funktionieren.^^