Einfache frage :))

halli hallo
nach einem wust von wirren fragen von mir,
jetzt was 1faches:

If ActiveSheet.Shapes(„Textfeld 44“).Select Then MsgBox(„Bal bla“)

funktioniert nicht, warum?
bzw. wie ist die richtige syntax?

vielen dank für hilfe!

gruß
herpes

If ActiveSheet.Shapes(„Textfeld 44“).Select Then MsgBox(„Bal
bla“) funktioniert nicht. Warum?

Weil eine IF Abfrage nur einmal zu einem bestimmten Zeitpunkt ausgeführt wird. Es heißt frei übersetzt ja auch „Sollte etwas so sein, dann tue…“. Aber Du willst sicher in dem Moment, wenn Textfeld 44 selektiert wird, Blabla ausgeben. Dann mußt Du das in ein eigenes Sub packen und mit ON arbeiten. Das heißt nämlich so viel wie „Wenn dies eintritt, dann tue…“ :wink:

Gruß,
-Dav

Einfache Antwort - Zusatz :wink:
Hi Herpes,

Du hast 2 Probleme, erstens ist Dein Code falsch:

If ActiveSheet.Shapes(„Textfeld 44“).Select Then MsgBox(„Bal
bla“)

Diese Zeile testet nicht auf Selektion der Textbox, sie selektiert sie. VBA wertet zunächst die Statements hinter dem If aus (normalerweise irgendwelche Berechnungen oder Vergleiche, etwa If a = 1). Bei Dir führt es den Select-Befehl aus. Dieser liefert als Wert ein Falsch zurück. Also ist Deine If-Bedingung nie erfüllt, und die MsgBox wird nie ausgegeben.

Richtig wäre:

If TypeName(Selection) = „TextBox“ Then If Selection.Name = „Text Box 1“ Then MsgBox „Blabla“

Hier testest Du, ob die aktuelle Selektion eine TextBox ist, und wenn ja, wie ihr Name lautet. Das doppelte If ist übrigens nötig, weil Du nur bei der TextBox auf die .Name-Eigenschaft zugreifen kannst.

Kommen wir nun zum 2. Problem :wink:

Das hat Dav ja schon beschrieben und ich weiter unten auch, nämlich, dass Du diese Programmzeile ja irgendwo reinschreiben musst, wo sie auch ausgeführt wird. Bei WorkSheet_SelectionChange geht es eben nicht, weil dort nur auf das Aktivieren von Zellen und nicht Textboxen reagiert wird. Und ich weiß leider immer noch keine Alternative dazu.

Gruß

Sculpture

mit ON arbeiten, aber wie?
hai -dav!
kannst du mir das genauer beschreiben?
ich habe keine on eigenschaft gefunden in meiner hilfe…
geht das so: onClick starte sub oder so?
oder kommt ON in das sub, nur was führt das sub dann aus?
eine zeitschlaufe vielleicht?

vielen dank für deine hilfe aber doch zumindest…
gruß
herpes…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hai -dav!
kannst du mir das genauer beschreiben?

Leider nicht wirklich. Ich benutze VBA nur alle Jubeljahre mal. Obwohl ich gerade letztens erst erst die Funktion gebraucht habe, allerdings auf Cells bezogen. Das sah glaube ich so ähnlich aus wie

sub onWorkSheet_SelectionChange()

if selection.range = „Zellefragmichwas“ then…

end sub

Jedenfalls wird auf das Ereignis „Änderung der Auswahl“ reagiert, und da meldet sich Excel dann schon selbst zu Wort, wenn das passiert. Aber wie Sculpture schon meinte:

Bei WorkSheet_SelectionChange geht es eben nicht, weil dort nur
auf das Aktivieren von Zellen und nicht Textboxen reagiert
wird. Und ich weiß leider immer noch keine Alternative dazu.

Sorry, bei deinem nächsten PHP oder ASP Problem helf ich Dir wahrscheinlich besser weiter… :wink:

-Dav