If, ElseIf verschachtelt
03.01.2018 15:56:25
Mia
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!