IF Funktion in excel auf mehrere Zellen anwenden?
Hallo,
Ich möchte wenn in einer Zelle etwas reingeschrieben wird das die darauffolgenden Felder zu Pflichtfelder werden. Dazu nutze ich aktuell folgende Formel.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim zeile As Long, OK As Boolean
OK = True
For zeile = 1 To Tabelle1.Cells.SpecialCells(xlCellTypeLastCell).Row
If Worksheets("Tabelle1").Cells(4, 2).Value <> "" Then
If Worksheets("Tabelle1").Cells(4, 3).Value = "" Then OK = False 'Spalte C
If Worksheets("Tabelle1").Cells(4, 4).Value = "" Then OK = False 'Spalte D
If Worksheets("Tabelle1").Cells(4, 5).Value = "" Then OK = False 'Spalte E
If Worksheets("Tabelle1").Cells(4, 6).Value = "" Then OK = False 'Spalte F
If Worksheets("Tabelle1").Cells(4, 8).Value = "" Then OK = False 'Spalte H
If Worksheets("Tabelle1").Cells(4, 9).Value = "" Then OK = False 'Spalte I
End If
Next
If Not OK Then
MsgBox "Drucken nicht möglich - nicht alle Pflichtfelder ausgefüllt"
Cancel = True
End If
End Sub
Nun möchte ich das die obige Formel von B4- B25 durchgeführt wird. Also das wenn in in B8 z.B. etwas reingeschrieben wird das dann die Zellen in B8 geprüft werden das dort in den anderen Feldern auch was reingeschrieben worden ist.
Wie würde ich das ganze hinbekommen?
Danke im Voraus
1 Antwort
Hallo, ich habe die For-Next-Schleife rauskopiert und in die Anpassung fett geschrieben:
For zeile = 4 To Tabelle1.Cells.SpecialCells(xlCellTypeLastCell).Row
If Worksheets("Tabelle1").Cells(zeile , 2).Value <> "" Then
If Worksheets("Tabelle1").Cells(zeile , 3).Value = "" Then OK = False 'Spalte C
If Worksheets("Tabelle1").Cells(zeile , 4).Value = "" Then OK = False 'Spalte D
If Worksheets("Tabelle1").Cells(zeile , 5).Value = "" Then OK = False 'Spalte E
If Worksheets("Tabelle1").Cells(zeile , 6).Value = "" Then OK = False 'Spalte F
If Worksheets("Tabelle1").Cells(zeile , 8).Value = "" Then OK = False 'Spalte H
If Worksheets("Tabelle1").Cells(zeile , 9).Value = "" Then OK = False 'Spalte I
End If
Next
Weiters sehe ich diese Vereinfachung:
For zeile = 4 To Tabelle1.Cells.SpecialCells(xlCellTypeLastCell).Row
If Worksheets("Tabelle1").Cells(zeile , 2).Value <> "" Then
For spalte = 3 to 9
If Worksheets("Tabelle1").Cells(zeile , spalte).Value = "" and spalte <> 7 Then OK = False
next spalte
End If
Next zeile
Achso, das wusste ich nicht.
Dann darf die Schleife nicht bis Tabelle1.Cells.SpecialCells(xlCellTypeLastCell).Row
laufen, sondern:
For zeile = 4 To 25
Ich habe nur die Schleife angepasst, dein Vorspann und Nachspann passt.
Nachdem ich dies umgesetzt habe kriege ich nun nur noch die Meldung das nicht alle Pflichtfelder ausgefüllt wurden. Das Problem ist das bis B25 Daten eingegeben werden aber die darauffolgenden Zellen B26 bis Ende auch werte haben aber keine Pflichtfelder Verknüpfung mehr haben sollen. Ich will das ganze also wirklich nur von B4-B25 prüfen lassen und dann aufhören