Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Von welchem Shape wurde das Makro aufgerufen ?

Von welchem Shape wurde das Makro aufgerufen ?
11.03.2007 16:41:00
Mathis
Auf einem Tabellenblatt ( siehe https://www.herber.de/bbs/user/41028.xls ) sind mehrere Shapes. Mit Klick auf jedes Shape soll jeweils genau diesem eine andere Farbe zugewiesen werden. Dazu verwende ich ein Makro "Sub Ampelfarben()". Für die Auswahl des jeweiligen Shapes nutze ich "ActiveSheet.Shapes( Application.Caller )". Funktioniert einwandfrei, solange das Shape einen eindeutigen Namen hat.
Aus anderen Gründen müssen die Shapes allerdings vom Benutzer benennbar und duplizierbar sein. Problem: Application.Caller ist dadurch für die Shapes identisch, und Excel färbt immer das erste der benannten Shapes um, und nicht das jeweils angeklickte.
In PowerPoint wäre die Lösung ein schlichtes Ergänzen der Sub auf "Sub Ampelfarben(sh as Shape)", doch da macht Excel leider, wie mir scheint, nicht mit ... - grmpf.
Ich freue mich über jede Unterstützung, ggf. auch Vorschläge für work-arounds.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Von welchem Shape wurde das Makro aufgerufen ?
11.03.2007 21:25:00
Jan
Hi,
im Namensfeld, links oben in der Bearbeitungsleiste, kannst du den Shapes eindeutige Namen geben.
mfg Jan
AW: Von welchem Shape wurde das Makro aufgerufen ?
12.03.2007 08:00:00
Mathis
Hi Jan, danke für die schnelle Antwort. Das mit der Benennung über das Namensfeld ist mir so weit klar. Die Situation ist, dass Benutzer einer von mir entwickelten Excel- Datei immer wieder auch bereits benannte Shapes duplizieren, ohne sie danach eindeutig zu benennen. Dadurch sind dann mehrere gleich benannte Shapes auf dem Arbeitsblatt, und dadurch entsteht das beschriebene Problem...
AW: Von welchem Shape wurde das Makro aufgerufen ?
12.03.2007 23:41:32
Daniel
Hallo
dann in regelmäßigen Abständen ein Makro drüberlaufen lassen, daß den Shapes nen eindeutigen Namen verpasst:
Sub Eindeutiger_Name()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
i = i + 1
sh.Name = "Form_" & Format(i, "00")
Next
End Sub

Wenn die Shape-Namen nicht weiter wichtig sind, hast du sie damit zuminest für ein Makro eindeutig.
Gruß, Daniel
Anzeige
AW: Von welchem Shape wurde das Makro aufgerufen ?
13.03.2007 07:04:00
Mathis
Hallo, Daniel - das ist eine gute Idee, und möglicher Weise ein brauchbarer "work-around". Nervig daran finde ich jedoch, dass es, wenn ich recht sehe, nur über andauerndes regelmässiges Prüfen möglich wäre, da kein Event ausgelöst wird, wenn z.B. ein Shape dupliziert oder hinzugefügt wird. Und erst nach dem Klick zu prüfen und umzubenennen hilft auch nicht wirklich, da ich durch "Application.Caller" ja erst mal nur den alten, aber nicht den eindeutigen neuen Namen weiss.
Danke dennoch für Deine Unterstützung.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige