Hallo! Also auf den Programminhalt habe ich mal nicht geschaut - dafür fehlt die Datei bzw. die Wirkungsweise. Das Problem ist, dass du in Zeile 8 ein if beginnst aber in Zeile 9 auch gleich noch eine for Schleife. Damit fängst du bildlich gesprochen einen neuen Programmblock an. Das if davor gibt es für den Code dann erstmal nicht mehr (erst nach der Schleife wieder). Dein elsif hat also keinen If Anfang. Du müsstest dort einfach wieder mit einem if beginnen (die anderen elseif könnten dann bleiben). Damit fängst du wieder deine Schleife an. Da du viele identischen Zeilen hast, wäre unten das ggf. mal eine Variante. Da sind gleiche Reaktionen zusammengefasst. Wobei es fast den Anschein hat, dass die for Schleife vor das if then sollte. Würde zumindest logischer erscheinen. Ansonsten wird die Prüfung von dir in Zeile 10 ja in allen Fällen durchgeführt, was aber bei einigen Kriterien doppelt wäre. Zudem springt die Schleife dann nur an, wenn A 11 war. Also mal prüfen, ob die Codezeilen richtig waren (wenn vertauscht passt es) und ggf. so wie unten zusammenfassen. VG
'Überprüfen, welcher Betriebszustand als letztes angegeben wurde
Dim z As Long
Dim letzte As Long
letzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
E = ActiveSheet.Cells(letzte, 15).Value 'Spalte O
If A = 11 Then
For z = letzte To z = letzte - 2
If E <> "35" Or E <> "14" Or E <> "2*" Then
MsgBox "Bitte den Turm anfahren!", vbOKOnly + vbCritical, "Meldung"
txtLOT = ""
txtSAP = ""
Exit Sub
End If
Select Case A
Case 12, 13
If E <> "36" Or E <> "14" Or E <> "4*" Or E <> "2*" Then
MsgBox "Bitte den Turm ausfahren!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case 15
If E <> "36" Or E <> "1*" Or E <> "4*" Or E <> "2*" Then
MsgBox "Bitte den Turm ausfahren!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case 31, 32, 33, 34
If E <> "36" Or E <> "14" Or E <> "2*" Then
MsgBox "Bitte den Turm ausfahren!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case 35
If E <> "36" Or E <> "14" Or E <> "4*" Or E <> "31" Or E <> "2*" Then
MsgBox "Bitte den letzten Betriebszustand überprüfen!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case 36
If E <> "11" Or E <> "14" Or E <> "2*" Then
MsgBox "Bitte den letzten Betriebszustand überprüfen!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case 41
If E <> "33" Then
MsgBox "Bitte auf CIP Komplett umbauen!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case 42
If E <> "34" Then
MsgBox "Bitte auf CIP Komplett mit Filterkammer umbauen!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case 43, 44
If E <> "32" Then
MsgBox "Bitte auf CIP Leitung umbauen!", vbOKOnly + vbCritical, "Meldung"
Exit Sub
End If
Case Else
End Select
Next z
End If
|