Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bilder in VBA eindeutig identifizieren

Bilder in VBA eindeutig identifizieren
11.02.2016 13:15:38
Thomas
Hallo Zusammen,
ich habe schon oft hier Lösungen gefunden aber nun habe ich eine Frage zu der ich keine Lösung gefunden habe.
Ich habe eine Excel Datei mit diversen eingefügten Bildern, die diverse Stati darstellen. Die Bilder sind ein grüner und ein roter Punkt mit gleichen Abmessungen(!). Ich will nun aus den Bildern mittels VBA weiterverarbeitbare Daten generieren, also z.B. in die Zelle in der sich das Bild befindet den Wert "grün" oder "rot" eintragen.
Dazu brauche ich aber eine einzigartige Eigenschaft dieses Shapes. Ich habe es mit .height und.width probiert aber die Abmessungen sind gleich.
Fällt jemandem eine andere Möglichkeit ein? Wenn man eine Möglichkeit hätte die Bildgröße in Bit/Bytes zu ermitteln, wäre die sicherlich unterschiedlich.
Oder vlt. hat jemand eine andere Idee?
Danke!
VG
Thomas

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder in VBA eindeutig identifizieren
11.02.2016 13:42:35
ChrisL
Hi Thomas
Bilder lassen sich über den Namen eindeutig identifizieren:
Sub Makro1()
Dim pic As Object
For Each pic In ActiveSheet.Pictures
MsgBox pic.Name
Next pic
End Sub

Sinn und Zweck der Übung erschliesst sich mir aber nicht.
cu
Chris

AW: Bilder in VBA eindeutig identifizieren
11.02.2016 13:53:37
Thomas
Hallo Chris,
das ist schon klar. Aber das hilft mir nicht.
Okay ich lade mal ein Beispiel hoch. Ich muss wissen ob in ZelleA1 ein rotes oder ein grünes Bild ist. Das selbe in Zelle A2 usw. Die Namen sind nicht eindeutig, da sich diese Bilder regelmäßig ändern. Über Namen kann ich also NICHT identifizieren ob das Bild rot oder grün ist.
https://www.herber.de/bbs/user/103463.xlsx
Andere Ideen?
Gruß
Thomas

Anzeige
AW: Bilder in VBA eindeutig identifizieren
11.02.2016 14:16:27
ChrisL
Hi Thomas
Ich lasse die Frage offen.
Es ist mir weiterhin unklar was das soll. Jemand macht die Bilder ja rein, warum also nachträglich identifizieren und in einen Zellwert umwandeln. Könntest den User ja den Zellwert ändern lassen und hieraus ergibt sich das Bild (ginge sogar mit bedingter Formatierung).
cu
Chris

AW: Bilder in VBA eindeutig identifizieren
11.02.2016 14:39:09
Rudi
Hallo,
warum nimmst du nicht einfach ein rotes Quadrat und einen grünen Kreis aus den Formen?
Da kannst du einfach die Farbe bestimmen.
Gruß
Rudi

AW: Bilder in VBA eindeutig identifizieren
11.02.2016 15:50:17
Thomas
Hallo Leute,
ich seh schon, niemand mag meine Frage beantworten ;)
Ja, WENN ich Einfluss auf die Ursprungsdatei hätte, hätte ich die Lösung schon längst, da fallen mir selbst 1000 Möglichkeiten ein.
ABER ich habe keinen Einfluss auf die Ausgangsdatei und die enthält diese bescheidenen Bilder nun mal (und nichts anderes was ich zur Identifikation benutzen kann) und das lässt sich nun eben nicht ändern.
Also brauche ich noch immer eine Lösung, wie ich mit der gegebenen Situation umgehen kann.
Trotzdem danke für Eure Antworten.
Gruß
Thomas

Anzeige
AW: Bilder in VBA eindeutig identifizieren
11.02.2016 16:50:28
ChrisL
Hi Thomas
Ja, WENN du das schon vorher so beschrieben hättest, dann hätten wir dein Problem auch verstanden und wären motiviert gewesen dir eine Lösung zu suchen :)
Könntest tatsächlich ausprobieren das Bild temporär extern zu speichern, etwa so...
https://www.herber.de/forum/archiv/1128to1132/1130567_Grafik_oder_Bereich_mit_VBA_als_Bild_speichern.html
Anschliessend FileSize prüfen (ich glaube innerhalb Excel nicht möglich) und mit Kill die temporäre Datei wieder löschen.
cu
Chris

Anzeige
AW: Bilder in VBA eindeutig identifizieren
11.02.2016 18:11:14
firmus
Hi Thomas,
wer wird den gleich die Flinte ins Korn werfen, bevor Du nicht jede Eigenschaft von Picture und Shapes auf Differenzen untersucht hast ?
Ich habe es mit Deiner Datei mit den Index(Picture) und Index(Shapes) versucht.
Bei Shapes bekommst Du eine laufende Nummer, bei Picture bekommst Du für den grünen Kreis eine "2", für das rote Rechteck eine "1".

Sub Makro1()
Dim pic As Object
Dim i As Long
For Each pic In ActiveSheet.Pictures
i = i + 1
Cells(i, 5).Value = pic.Name
Cells(i, 6).Value = pic.Index
Cells(i, 7).Value = ActiveSheet.Shapes(i).ID
Cells(i, 8).Value = ActiveSheet.Shapes(i).Name
Next pic
i = i
End Sub
Das benötigt natürlich noch die Verifikation mit größerer Datenmenge, aber ein Ansatz?
Gruß
Firmus
Geduld - in Deinem Wortschatz?

Anzeige
AW: Bilder in VBA eindeutig identifizieren
11.02.2016 19:14:06
Thomas
Hallo Zusammen,
danke für Eure Lösungsvorschläge, wahrscheinlich war meine Beschreibung mangelhaft. Und ja, es war vor dem Essen, von daher die Ungeduld... :)
@firmus: genau so was hatte ich gesucht, leider geht's bei der Originaldatei nicht. Da ist sowohl Object.Index als auch Shape.ID unterschiedlich, die Namen leider auch.
@ChrisL: die Lösung sieht vielversprechend aus, das werde ich mal umsetzen. Morgen.
Ich hänge noch mal das bereinigte Original an, falls jemand noch mal rumprobieren möchte...
Danke!
VG
Thomas
https://www.herber.de/bbs/user/103477.xlsx
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge