Dein Code funktioniert super. Wollte nur Fragen:
Unabhängig von Deinem Beispiel, ich würde gerne prüfen, ob eine Eingabe in Spalte B überhaupt in meiner Referenzlist vorkommt.
Wenn ich aA(z, 1) abfrage, bekomme ich aus der Referenzliste die Zeile zurück, wo der Treffer gefunden wurde. Wenn meine Eingabe aber gar nicht vorkommt, hätte ich einfach gerne eine MSGbox.
Nur wie frage ich das ab.
meine Idee: if aA(z, 1) = "" oder auch =0
funktioniert da nicht. Hast du noch eine andere Idee ?
Danke
Jockel.
hier noch mal Deine Code:
Option Explicit
Sub pruefen()
Dim shR As Worksheet
Dim zA&, zAc&, zR&, sR&, z&
Dim aA, aAc
Dim farbe
farbe = Range("I2").Interior.Color
' oder z.B. farbe=vbYellow oder vbRed
Set shR = Sheets("Referenztabelle")
zA = Range("B" & Rows.Count).End(xlUp).Row
zAc = Range("C" & Rows.Count).End(xlUp).Row
zR = shR.Range("B" & shR.Rows.Count).End(xlUp).Row
aA = Range("B1:B" & zA)
aAc = Range("C1:C" & zA)
z = WorksheetFunction.Max(zA, zAc)
Range("B2:C" & z).ClearFormats
For z = 2 To zA
aA(z, 1) = Application.Match(aA(z, 1), _
shR.Range("A1:A" & zR), 0)
If IsError(aA(z, 1)) Then
Range("B" & z).Interior.Color = farbe
Else
If aAc(z, 1) "" Then
sR = shR.Cells(aA(z, 1), shR.Columns.Count) _
.End(xlToLeft).Column
If IsError(Application.Match(aAc(z, 1), _
shR.Cells(aA(z, 1), 1).Resize(, sR), 0)) Then
Range("C" & z).Interior.Color = farbe
End If
End If
End If
Next