PDA

Vollständige Version anzeigen : Bild aus Tabellenblatt als Markierungsoption in Diagramm


eberry
14.07.2014, 09:43
Hallo zusammen,

es ist ja möglich den Datenpunkt in einem Diagramm durch eine Grafik zu ersetzen (Datenpunkt markieren -> Rechtsklick -> Markierungsoptionen -> Integriert -> Grafik einfügen).
Auch mittels VBA ist dies möglich. Allerdings muss die Quelle (Pfad) des Bildes angegeben werden:

ActiveChart.SeriesCollection(1).Points(2).Select
Selection.MarkerStyle = -4147
With Selection.Format.Fill
.Visible = msoTrue
.UserPicture _
"C:\Users\...\Bild.jpg"
.TextureTile = msoFalse
End With

Ist es auch möglich ein Bild aus einem anderen Tabellenblatt als Markierungoption zu verwenden? Und wie lautet dann der Code? Wie gebe ich dann die Quelle/Pfad des Bildes an?

BrunMi
14.07.2014, 10:38
Hallo eberry,

Ich glaube nicht, dass das möglich ist.
Kann aber auch gut sein, dass es nur ich nicht kann ;)

LG
BrunMi

Nepumuk
14.07.2014, 10:46
Hallo,

ein Beispiel:

Public Sub Test()
Tabelle2.Shapes("Picture 1").Copy
Tabelle1.ChartObjects(1).Chart.SeriesCollection(1).Points(2).Paste
End Sub

eberry
14.07.2014, 11:51
Hey Nepumuk,

leider funktioniert deine Lösung nicht. Habe es so probiert:

For p = 1 To ActiveChart.SeriesCollection(1).Points.count
Sheets("Test").Shapes("Logo").Copy
ActiveChart.SeriesCollection(1).Points(p).Paste
Next p

Mc Santa
14.07.2014, 11:59
Hallo,

welche Fehlermedlung erhälst du genau und kannst du uns eine Beispielhafte Datei hochladen? (Die Datei muss kein echtes Logo und keine echten Daten enthalten, aber soll so aufgebaut sein, wie das Original)

VG

eberry
14.07.2014, 12:27
Hier ist ein Beispiel.

Danke für eure Hilfe

Nepumuk
14.07.2014, 12:55
Hallo,

ich weiß nicht was du hast, funktioniert einwandfrei.

Public Sub Test()
Dim lngIndex As Long
Tabelle2.Shapes("BMWLogo").Copy
With Tabelle1.ChartObjects(1).Chart.SeriesCollection(1)
For lngIndex = 1 To .Points.Count
.Points(lngIndex).Paste
Next
End With
End Sub

eberry
14.07.2014, 13:28
Also ich weiß echt nicht was ich falsch mache, aber wenn ich auf den Button "Diagramm erstellen" klicke, erscheint einfach kein Logo.
Kommt bei dir das Logo, wenn du meine Datei ausführst?

Nepumuk
14.07.2014, 13:34
Hallo,

nein da kommt ein Fehler weil ist das Bild nicht habe welches du laden willst. Ich hab meine Prozedur nur auf das fertige Diagramm angewendet.

Mc Santa
14.07.2014, 13:35
Also ich weiß echt nicht was ich falsch mache, aber wenn ich auf den Button "Diagramm erstellen" klicke, erscheint einfach kein Logo.
Kommt bei dir das Logo, wenn du meine Datei ausführst?

Hallo,

das Logo erscheint bei mir sehr klein, aber es wird eingefügt.

VG

Nepumuk
14.07.2014, 13:56
Hallo,

ich hab das mit einem Bitmap getestet und da sieht das so aus:

eberry
14.07.2014, 13:56
Hallo,

das Bild das geladen werden soll ist ja in Tabellenblatt2.
Leider wird es bei mir auch nicht in klein eingefügt.

BrunMi
15.07.2014, 06:54
Hallo,

Hab am Anfang den gleichen Fehler gemacht wie du.
Wenn du es mit einer for Schleife machen willst solltest du es so machen:

letzteSpalte = Sheets(1).Cells(1, 256).End(xlToLeft).Column

For i = 1 To letzteSpalte
Tabelle2.Shapes(Sheets("Tabelle1").Cells(1, i) & "Logo").Copy
Tabelle1.ChartObjects(1).Chart.SeriesCollection(i).Points(1).Paste
Next i

Im Anhang schicke ich dir nochmal deine Beispieldatei.
Hab mir deinen Code für den Button ehrlich gesagt gar nicht genau angesehen.. Hab nur meinen drunter eingefügt und bei mir hat es dann funktioniert.

LG
BrunMi

eberry
15.07.2014, 07:17
Hallo BrunMi,

vielen, vielen Dank !!!
Jetzt wird mir so einiges klar.
Danke, dass du dir die Zeit genommen hast meinen Code abzuändern.

Viele Grüße
eberry

BrunMi
15.07.2014, 07:57
Hallo berry,

Nichts zu danken. Hab ja selber wieder was dazugelernt :)

LG
BrunMi