Ändere den gesamten Teil nach der 1. For-Next-Schleife wie folgt:
Range("U2").Resize(lngLetzte - 2, 2) = arrDaten()
Range(Cells(2, 21), Cells(lngLetzte, 22)).Sort key1:=Range("V2"), order1:=xlAscending, Header:=xlNo
Dim lngJahr As Long
Range("T2:T6").Font.ColorIndex = xlAutomatic
For lngZaehler = 2 To 6
lngZeile = Cells(lngZaehler, 21) + 1
If Cells(lngZaehler, 22) = Date Then
lngJahr = Cells(lngZeile, 5)
Cells(lngZaehler, 20).Font.Color = vbBlue
Else
lngJahr = Cells(lngZeile, 5) + 1
End If
If Cells(lngZeile, 4) = "" Then
Cells(lngZaehler, 20) = Cells(lngZeile, 2) & " hat am " & Format(Cells(lngZaehler, 22), "ddd. dd.mmm.yyyy") & " den " & lngJahr & ". Geburtstag"
Else
Cells(lngZaehler, 20) = Cells(lngZeile, 2) & " hätte am " & Format(Cells(lngZaehler, 22), "ddd. dd.mmm.yyyy") & " den " & lngJahr & ". Geburtstag"
End If
Next lngZaehler
Range(Cells(2, 21), Cells(lngLetzte, 22)).ClearContents
Bis später, Karin