Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1064to1068
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
Inhaltsverzeichnis

Zeichnungsobjekte

Zeichnungsobjekte
31.03.2009 20:39:17
Wolfgang
Hallo Excelprofis
Ich hab mal eine Herrausforderung mit Shapes.
Kann mir jeman einen Tipp geben wie man mit VBA ermitteln kann welches Shape im
Vordergrund bei mindestens zwei Übernanderliegenden Shapes zu sehen ist?
Beispiel: Sh1,Sh2 Sh3
Sh1 und sh2 liegen nebeneinander
Sh3 schneidet die beiden Shapes
Ich möchte nun ermitteln welches Sh im Vordergrund ist
gruß wolfgang

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

Betreff
Datum
Anwender
Anzeige
AW: Zeichnungsobjekte
31.03.2009 21:04:00
Jens
Hi Wolfgang
Über Schleife so nach dem Motto:
...
If Shape.ZOrderPosition = xlFront Then
...
Gruß aus dem Sauerland
Jens
AW: Zeichnungsobjekte
31.03.2009 21:24:47
wolfgang
Hallo Jens
Danke für dein Tipp.
Habs gleich mit 3 Shapes probiert.
Entweder hab ich was falsch gemacht oder es ist doch nicht so einfach.
nachfolgenden Code hab ich versucht.

Sub test()
Dim i
Dim a As Object
Set a = Worksheets("TabTest")
For i = 1 To a.Shapes.Count
If a.Shapes(i).ZOrderPosition = xlFront Then
MsgBox " Shapes " & a.Shapes.Name
End If
Next i
End Sub


gruß wolfgang

Anzeige
AW: Zeichnungsobjekte
31.03.2009 21:34:30
Jens
Hi
MsgBox " Shapes " & a.Shapes(i).Name
Gruß aus dem Sauerland
Jens
AW: Zeichnungsobjekte
31.03.2009 21:41:31
wolfgang
Hallo Jens
Sorry hab ich verprellt mit dem Shapes(i)
Aber es klappt trotzdem nicht.
xlFront gibt mir auch in der überwachung grunsätzlich die 4 an
gruß wolfgang
AW: Zeichnungsobjekte
31.03.2009 21:53:29
Jens
Hi
Falls Du das Makro über einen Button aufrufst, dann musst Du diesen aus der Schleife rausnehmen, da dieser ebenfalls ein Shape ist.

Sub test()
Dim i
Dim a As Object
Set a = Worksheets("TabTest")
For i = 1 To a.Shapes.Count
If Not a.Shapes(i).Name = "Button 1" Then 'Namen anpassen
If a.Shapes(i).ZOrderPosition = xlFront Then
MsgBox " Shapes " & a.Shapes(i).Name
End If
End If
Next i
End Sub


Gruß aus dem Sauerland
Jens

Anzeige
AW: Zeichnungsobjekte
31.03.2009 22:05:33
wolfgang
Hallo Jens
ich starte das makro nicht über ein Button.
Ich hab das Makro mit dem Debugger getestet (F8)
Die Überwachung hinzugefügt.
wenn das bei Dir klappt könnte es ja nur an eine Einstellung liegen
Wie schon geschrieben ich habe einfach zwei Rechtecke nebeneinander gezeichnet
und ein darüber gelegt.
gruß wolfgang
AW: Zeichnungsobjekte
31.03.2009 22:26:01
Original
Hi,
ganz einfach, das Shape, mit dem gröten Wert für ZorderPosition ist im Vordergrund.

Sub til()
Dim Shp As Shape
For Each Shp In ActiveSheet.Shapes
MsgBox Shp.Name & "  " & Shp.ZOrderPosition
Next
End Sub


mfg Kurt

Anzeige
AW: Zeichnungsobjekte
31.03.2009 22:37:08
wolfgang
hallo Kurt
ich hab auch gleich probiert ich glaub ich habs jetzt mit deinem Tipp
danke
wolgang

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige