Hi gary,
Der Code um alle Ampelsignale auf aus zu setzen:
' Alle Ampeln aus
ActiveSheet.Shapes("Group 41").Select
Selection.ShapeRange.ZOrder msoBringToFront
ActiveSheet.Shapes("Group 42").Select
Selection.ShapeRange.ZOrder msoBringToFront
ActiveSheet.Shapes("Group 46").Select
Selection.ShapeRange.ZOrder msoBringToFront
ActiveSheet.Shapes("Group 50").Select
Selection.ShapeRange.ZOrder msoBringToFront
ActiveSheet.Shapes("Group 54").Select
Selection.ShapeRange.ZOrder msoBringToFront
ActiveSheet.Shapes("Group 58").Select
Selection.ShapeRange.ZOrder msoBringToFront
eigentlich müsste das auch kürzer gehen:
for each x in activesheet.shapes
x.shaperange.zorder msobringtofront
next
Ist aber nicht getestet, mit Grafiken arbeite ich nur selten.
Ansonsten solltest Du immer versuchen, Select und Activate zu vermeiden.
ActiveSheet.Shapes("Group 41").ShapeRange.ZOrder msoBringToFront
Und die Abfrage, die so schwer gar nicht ist, wenn man weisswies geht:
' D-Ampel-Setting
Auch hier taucht Select wieder auf …
In dem kleinen Beispiel mag das mit Select noch gehen, aber wenn Du mal etwas Komplexeres schreibst, wirst Du merken, wie lästig das ist.
Die Excel-Syntax ist halt schon stark gewöhnungsbedürftig. Nennt sich wie gesagt wurde VBA (Visual Basic for Applications) und dann kommen noch spezifische Unterschiede je nach verwendeter Excel Version dazu,tztz
Naja, die Syntax ist halt Basic. Wenn man sich daran gewöhnt hat, geht es schon. Im Prinzip ist es immer:
Objekt.Methode bzw.
Objekt.Eigenschaft = xyz
Schlimmer sind wirklich die verschiedenen Versionen …
Viele Grüße
Jörg