Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1596to1600
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

If, ElseIf verschachtelt

If, ElseIf verschachtelt
03.01.2018 15:56:25
Mia
Guten Tag!
Wünsche euch ein gutes und schönes neues Jahr!
Ich habe folgendes Problem. Ich frage in einer Userform die Pflichtfelder ab. Es klappt auch soweit bis ich zu den Bedingungen unten weiter komme. Hier dürfte ich ein ElseIF oder ein EndIf falsch gesetzt haben aber ich komme einfach nicht drauf wie ich die IF's verschieben müsste das es klappt.
Also die oberen sind selbsterklärend. Kurz zu dem Problemteil. Wenn in txtbox2 ein Wert drin steht (es sind in diesen Textboxen nur numerische Eingaben möglich) und es sich um einen ungeplanten Stillstand handelt soll er nachsehen ob in den beiden Feldern etwas drin steht. Ist dies nicht der Fall soll wieder eine Nachricht kommen mit der Aufforderung diese Felder auszufüllen.
Das erste klappt, sprich wenn ungeplant dann erwartet er zumindest einen Wert in txtbox1 und wenn ein Wert drin steht wird auch abgefragt ob man alles ausgefüllt hat. Habe ich jetzt aber auch einen Wert in txtbox2 stehen läuft er einfach weiter und speichert die Userform ohne das die beiden Mussfelder ausgefüllt sind.
Ich weiß ein paar mehr Augen können hier sicher helfen. So btw gibt es Editoren mit denen man den Code visualisieren kann? Wäre für mich ziemlich hilfreich wenn ich so wie hier sehen würde welche If, ElseIf und EndIf mit wem zusammengehört. Habe mal in Eclipse Java programmiert und hier konnte man den Code automatisch anpassen und er hat sich automatisch so eingerückt wie er zusammengehört. Gegen Farbe hätte ich auch nicht ;-P.
If Rüster.Value = "" Or _
Schicht.Value = "" Or _
FB.Value = "" Or _
Linie.Value = "" Or _
Produkt1.Value = "" Or _
Produkt2.Value = "" Or _
TextBox22.Value = "" Or _
TextBox2.Value = "" Or _
GeplantUngeplant.Value = "" Then
b = MsgBox("Bitte füllen Sie alle mit * gekennzeichneten Felder aus!", vbOKOnly)
Exit Sub
ElseIf GeplantUngeplant.Value = "ungeplant" Then
If txtbox1.Value = "" Then
b = MsgBox("Bitte geben Sie die Dauer des ungeplanten Stillstands an", vbOKOnly)
Exit Sub
ElseIf txtbox1.Value  "" Then
If TextBox7.Value = "" Or ungeplStillstand1.Value = "" Then
b = MsgBox("Bitte Problem  und/oder Grund für ungeplanten Stillstand eingeben", vbOKOnly)
Exit Sub
End If
End If
ElseIf txtbox2.Value > 1 & GeplantUngeplant.Value = "ungeplant" Then
If TextBox19.Value = "" Or ungeplStillstand2.Value = "" Then
b = MsgBox("Bitte Problem  und/oder Grund für ungeplanten Stillstand eingeben", vbOKOnly)
Exit Sub
End If
ElseIf txtbox3.Value > 1 & GeplantUngeplant.Value = "ungeplant" Then
If TextBox17.Value = "" Or ungeplStillstand3.Value = "" Then
b = MsgBox("Bitte Problem  und/oder Grund für ungeplanten Stillstand eingeben", vbOKOnly)
Exit Sub
End If
ElseIf txtbox4.Value > 1 & GeplantUngeplant.Value = "ungeplant" Then
If TextBox15.Value = "" Or ungeplStillstand4.Value = "" Then
b = MsgBox("Bitte Problem  und/oder Grund für ungeplanten Stillstand eingeben", vbOKOnly)
Exit Sub
End If
ElseIf txtbox5.Value > 1 & GeplantUngeplant.Value = "ungeplant" Then
If TextBox21.Value = "" Or ungeplStillstand5.Value = "" Then
b = MsgBox("Bitte Problem  und/oder Grund für ungeplanten Stillstand eingeben", vbOKOnly)
Exit Sub
End If
End If
Danke schon für eure Hilfe!

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Statt &, AND (owT)
03.01.2018 16:10:49
EtoPHG

AW: Statt &, AND (owT)
04.01.2018 08:44:28
Mia
Vielen Dank für diesen Tipp, ist bestimmt hilfreich aber es löst mein Problem nicht. Ich kann einen Wert in txtbox2 eingeben aber er fragt nicht ab ob Textbox19 und ungeplStillstand2 leer sind. Der schreibt das einfach weg obwohl in den beiden Feldern nichts drin steht. Daher tippe ich ja darauf, dass ich irgendwo ein Elseif oder ein End If vergessen habe, sprich er geht in den Block

ElseIf GeplantUngeplant.Value = "ungeplant" Then
If txtbox1.Value = "" Then
...
hinein und weil in der txtbox1 ein Wert drin steht geht er raus und beendet das Ganze.
Wenn ich die Beiden End If's in diesem Block dann nach ganz unten verschiebe will er das ich die beiden Felder von txtbox2 eintrage. Habe ich das gemacht speichert er auch das weg. Also ohne einer Zeit und ohne das er mich nach txtbox3 fragen würde oder sich Gedanken machen würde ob die beiden Felder textbox17 und ungeplStillstand3 ausgefüllt sind.
Anzeige
AW: Statt &, AND (owT)
04.01.2018 09:26:39
Mia
Also ich habe versucht mir das mit dem Debugger anzusehen also obwohl der Wert in txtbox2 = "" ist geht er in diese Schleife rein. Ich habe jetzt schon größer gleich eingegeben aber das ändert auch nichts.
Ich verstehe einfach nicht wieso er trotzdem in diese Schleife hineingeht... Hat hier vlt jemand eine Idee?
AW: Statt &, AND (owT)
04.01.2018 13:41:53
Mia
Hat denn wirklich keiner eine Ahnung? Und ich glaube ich habe hier versehentlich zwei Beiträge verdreht. Naja ich würde sagen Anfänger in Sachen Forum ;-p sorry falls das stört.
Aber ich grübel immer mal wieder warum es nicht funktioniert. Ich verstehe einfach nicht warum er trotz das
ElseIf txtbox2 > 1....
siehe in meinem ersten Beitrag
Er in diese Schleife hineingeht wenn in txtbox2 nichts steht. Habe ich hier etwas in der Syntax falsch? Weil wenn ich die Werte dann eingetragen hab meckert wegen txtbox3 nicht mehr (wobei das könnte daran liegen dass ich die end if an das Ende stellen sollte). Aber warum geht er hinein... die Bedingung ist doch nicht erfüllt.
Die liebe Logik hat mich hier wohl verlassen. Ich hoffe es findet sich jemand mit einem Geistesblitz ;-)
Anzeige
AW: Statt &, AND (owT)
05.01.2018 13:34:18
EtoPHG
Hallo Mia,
eine Textbox enthält Text und eben keine Zahlen. Dein If wird selbst dann wahr, wenn die Textbox leer ist. Prüfe so:
ElseIf Val(txtbox2) > 1 ....
Gruess Hansueli
AW: Statt &, AND (owT)
08.01.2018 13:01:46
Mia
Ich danke dir!
Dieses Forum ist mein Lebensretter! Es sind immer nur Kleinigkeiten aber Kleinigkeiten summieren sich später auf.
Also bei so etwas immer Val() einsetzen?
Danke!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige