10.01.2017, 13:47
es muss in den spalten "A"- "AX" jeden tag "FRÜH", "MITTEL", "SPÄT" und "NACHT" vorkommen. Kann ich in der letzten Spalte anzeigen lassen mit "STOP" falls eines der Wörter fehlt?
=SUMMENPRODUKT(--(B1:AX1={"früh";"spät";"mittlel";"nacht"}))
Option Explicit '10.1.2017 Gast 123 Clever Forum
'es muss in den spalten "A"- "AX" jeden tag "FRÜH", "MITTEL", "SPÄT" und "NACHT"
Sub Prüfung_mit_Fehleranzeige()
Dim AC As Object, AX As Object
Dim flg As String, j As Integer
Dim Txt As String, gTxt As String
Dim Wert, fe As Integer, lz As Long
'zu prüfender Text festlegen
Wert = Array("FRÜH", "MITTEL", "SPÄT", "NACHT")
'letzte Zelle in Spalte A ermitteln
lz = Cells(Rows.Count, "A").End(xlUp).Row
'Fehler Spalte AY löschen
Range("AY1:AY" & lz).ClearContents
'Schleife für alle Zeilen prüfen
For Each AC In Range("A2:A" & lz)
gTxt = Empty 'Fehler Text
'Schleife für alle Zeilen prüfen
For Each AX In AC.Resize(1, 50)
flg = Empty 'Flag löschen
'Schleife für Tageszeiten "Früh" etc.
For j = 0 To 3
If AX.Value = Wert(j) Then flg = "ok": Exit For
Next j
'Fehlende Spalte/n ermitteln
If flg = Empty Then
Txt = Mid(AX.Address, 2, InStr(Mid(AX.Address, 2, 3), "$") - 1)
gTxt = gTxt & ", " & Txt: fe = fe + 1
End If
Next AX
'Fehler in Spalte AY anzeigen
If gTxt <> "" Then Cells(AC.Row, "AY") = " " & Mid(gTxt, 2, 200)
Next AC
MsgBox fe & " Fehler in Liste"
End Sub