Welches Bild habe ich angeklickt?

Hallo Cracks

Nun bin ich definitiv an meine VBA Grenzen gestossen…
Ich möchte folgendes tun:
Ich habe einen Katalog in Form einer Exceltabelle mit ca. 1000 Artikelnummern; Bezeichnungen; Zugehörigkeit etc…
Ich habe eine 2. Tabelle mit Bildern (ca. 800).
– Ziel:
Ich möchte in der einen Bildertabelle auf ein Bild (Motor xy) klicken. Dann möchte ich mir die Artikelnummerntabelle anzeigen lassen, mit der entsprechenden Artikelnummer schon ausgewählt.
– Idee:
Ich möchte, den Bildern die entsprechenden Artikelnummer als Name geben (die meisten Bilder sind schon so benannt).
Wenn ich nun auf ein Bild klicke, möchte ich VBA dazu bringen mir den Namen (eben die Artikelnummer) des angeklickten Bildes in eine Zelle Sheets(1).Range(„J1“))zu schreiben.
Damit ich dann meine Suchfunktion mit dem Sheets(1).Range(„J1“).Value füttern und auslösen kann.
Da ich gegen 800 Bilder habe, möchte ich nicht für jedes Bild ein „such Sub“, mit der Artikelnummer hinterlegen. Vor allem auch weil die Artikel hin und wieder ändern.
Ich möchte nur eine „Sub angeklickt()“, die mir eben den Namen des Bildes in Sheets(1).range(„J1“) schreibt und dann mit „Application.Run (datei + Mkro)“ die suchfunktion aktiviert.
Ist das möglich??
Ich hoffe ihr seid nicht gleich erschlagen von meinem langen Text…

Gruss
ME67

Ich möchte, den Bildern die entsprechenden Artikelnummer als
Name geben (die meisten Bilder sind schon so benannt).
Wenn ich nun auf ein Bild klicke, möchte ich VBA dazu bringen
mir den Namen (eben die Artikelnummer) des angeklickten Bildes
in eine Zelle Sheets(1).Range(„J1“))zu schreiben.

hallo ME67,

hilft dir das weiter:

Option Explicit
'
Sub MakroZuweisen()
Dim Bild
For Each Bild In Worksheets("Tabelle2").Shapes
 Bild.OnAction = "nn"
Next Bild
End Sub
'
Sub nn()
MsgBox Application.Caller
End Sub

Gruß
Reinhard

Hallo Reinhard

Danke für Deine Hilfe

Ich hab in der zwischenzeit auch was gefunden:

Sub Bild()

TypeName (Application.Caller)
v = Application.Caller
MsgBox "caller = " & v
Sheets(„bild“).Range(„i1“).Value = v

End Sub

Das ist aus der VBA Hilfe (vermutlich Kapitel 1, Thema 1, Absatz 1).
Wird wahrscheinlich in der VBA Grundschule für Daheimgebliebene am 1. Tag, 1. Lektion bearbeitet…

Manchmal sieht man echt vor lauter Wald den Baum nicht mehr…

Danke trotzdem!!!
Gruss
ME67