Wie kann man eine If schleife mit meheren bedingungen erstellen?

4 Antworten

schau mal im Direktfenster, was

debug.print "1:" & "_" &  Textbox1.Text & "2:" & Textbox2.Text

liefert (da darf kein Leerzeichen auftauchen! Nimm Schrift Courier oder eine andere äquidistante Schrift, bevorzuge ich für den Editor generell!)  Oder

len(Textbox1.Text)

oder verwende

if instr("2", Textbox1.Text), 1) > 0 And instr(....) > 0

ist da i'wo ein Leerzeichen drin? Oder heisst es zB

Activeworkbook.drawingObjects.Textbox1

? Du kannst aber anstatt AND auch 2 Schleifen ineinander setzen und nach der ersten Schleife was mit debug.print testen und in der 2. schleife wieder, zur genaueren Lokalisierung des Fehlers.

Mehr fällt mir für einen Fehlertest momentan auch nicht ein.


Ich habe das jetzt mal so nachgebaut und bei mir funktioniert es tadellos.
Bist Du sicher, dass in den TB wirklich nur 2 steht?
Wie genau funktioniert es denn nicht?
Gehe den Code mal mit F8 Step by Step durch.
WO siehst Du den Fehler?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)

(If leitet einen Block ein, keine Schleife - hier wird nichts wiederholt)

Syntaktisch ist alles in Ordnung, also dürfte der Fehler in der Semantik liegen.

Was willst du denn haben? Ich vermute mal:

Wenn in TextBox1 "2" steht, dann CommandButton3 ausblenden

und

Wenn in TextBox2 "2" steht, dann CommandButton3 ausblenden

Ansonsten CommandButton3 einblenden

Berücksichtige bitte, dass die Umgangssprache sehr locker mit den Begriffen "und" und "oder" umgeht, während diese Wörter als Operatoren eine genau festgelegte Bedeutung haben. Die Verwirrung hier dürfte daher kommen, dass die Umgangssprache viele "Ellipsen" ("Auslassungen") verwendet. Deshalb meine oben dargestellte Vermutung.

Syntaktisch kann ich keinen Fehler erkennen, aber du könntest das ein bisschen optimieren

CommandButton3.Visible = Not (TextBox1.Text = "2" And TextBox2.Text = "2")

Für eine Fehleranalyse bräuchte ich die Beschreibung des Soll- und Istzustands.