Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1668to1672
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

Hintergrundabfrage

Hintergrundabfrage
26.01.2019 11:07:57
Anja
Hallo zusammen,
habe mehrere Buttons mit ZOrder mso(bringtoFront) bzw. ...(sendtoBack) in den Vordergrund und Hintergrund gebracht.
Nun möchte ich eine Abfrage starten, wenn die ein oder andere Bedingung erfüllt ist, soll etwas anderes ausgeführt werden.
Ich finde aber keine entsprechende Syntax dafür.
Kann mir jemand weiterhelfen?
If ActiveSheet.Shapes("TextBox 41") "is in Front" then......
Danke schon mal.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
warum fragst Du nicht einfach ZOrder ab ... owT
26.01.2019 11:59:05
Matthias
AW: Hintergrundabfrage
26.01.2019 12:19:11
Nepumuk
Hallo Anja,
im Prinzip funktioniert die Abfrage so:
Public Sub Test()
    MsgBox ActiveSheet.Shapes("TextBox 41").ZOrderPosition
End Sub

Es wird eine 1 ausgegeben wenn sich die TextBox im Hintergrund befindet oder von keinem anderen Shape überdeckt wird. Eine 2 wird ausgegeben wenn die TextBox sich im Hintergrund befindet und von einem anderen Shape überdeckt wird.
Gruß
Nepumuk
Anzeige
AW: Hintergrundabfrage
26.01.2019 13:23:08
Anja
Hallo Nepumuk,
hat jetzt super funktioniert, vielen Dank!
Ich tu mich noch ein bisschen schwer mit den ganzen Befehlen/Ansprechen von shapes etc.....
Sub Abfrage_nach_Position
If ActiveSheet.Shapes("TextBox 41").ZOrderPosition = "1" Then
MsgBox "TextBox liegt im Vordergrund"
Else:
MsgBox "TextBox liegt im Hintergrund"
End If
End Sub
VG Anja
AW: Hintergrundabfrage
26.01.2019 13:44:43
Nepumuk
Hallo Anja,
der Rückgabewert der ZOrderPosition ist eine Zahl vom Typ Long, daher sind die Anführungszeichen eigentlich falsch. Denn das ist ein String. VBA kann den zwar automatisch in eine Zahl konvertieren, ist aber kontraproduktiv. Und den Doppelpunkt nach Else kannst du dir auch sparen, denn bei dir folgt darauf keine weitere Anweisung. Doppelpunkte benutzt man nur um zwei Befehle die eigentlich in zwei Zeilen stehen in eine zu schreiben. Beispiel:
Dim A As Long: A = 10

Welche Probleme beim Ansprechen von Shapes hast du denn?
Gruß
Nepumuk
Anzeige
AW: Hintergrundabfrage
26.01.2019 14:36:15
Anja
...ja danke für die Hinweise :-)
Muss das nochmal kurz korrigieren, bei mir wird "1" ausgegeben, wenn die Textbox im Hintergrund liegt(nicht hinter einem shape, sondern hinter zwei Comboboxen), "70" wird ausgegen, wenn die Textbox im Vordergrund liegt.
If ActiveSheet.Shapes("TextBox 41").ZOrderPosition = 70 Then
MsgBox "TextBox liegt im Vordergrund"
Else
MsgBox "TextBox liegt im Hintergrund"
End If
...letztendlich krieg ich das immer irgendwie rausgewuselt, muss ich dann im einzelnen noch mal nachfragen....danke dir auf jeden Fall.
VG
Anja

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige