Als Antwort auf diesen Beitrag
Hallo Chris,
teste mal:
Sub WertJ() ' Aufruf für Spalte J
Call MaxMarkieren(Datum:=Tabelle2.Range("A23:A" & Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row), Werte:=Tabelle2.Range("J23:J" & Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row), Jahr:=Tabelle2.Range("F21"))
End Sub
Sub WertL() ' Aufruf für Spalte L
Call MaxMarkieren(Datum:=Tabelle2.Range("A23:A" & Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row), Werte:=Tabelle2.Range("L23:L" & Tabelle2.Cells(Rows.Count, 1).End(xlUp).Row), Jahr:=Tabelle2.Range("F21"))
End Sub
Sub MaxMarkieren(Datum As Range, Werte As Range, Jahr As Long)
Dim iMax#: iMax = Evaluate("MAX(IF(YEAR(" & Datum.Address & ")=" & Jahr & "," & Werte.Address & "))")
Dim iRow: iRow = Evaluate("MATCH(1,(YEAR(" & Datum.Address & ")=" & Jahr & ")*(" & Werte.Address & "=MAX(IF(YEAR(" & Datum.Address & ")=" & Jahr & "," & Werte.Address & "))),0)")
Werte.Interior.Color = xlNone
If Not IsError(iRow) Then
Werte.Cells(iRow).Interior.Color = vbGreen
MsgBox "Jahr: " & Jahr & ": " & iMax
Else
MsgBox "kein Treffer", vbInformation
End If
End Sub