Function correctRedDays() Dim i As Integer Dim d As Date Dim startDate As Date, endDate As Date Dim dateColumn As Integer Dim noOfChanges As Integer Dim normalDayColor As Long, redDayColor As Long, newColor As Long Dim lastDayYear As Integer Dim rda() As Date For i = 3 To 30 If shtDay.Cells(4, i) = "datum" Then dateColumn = i Exit For End If Next i = 5 Do While shtDay.Cells(i, dateColumn) <> "" i = i + 1 Loop startDate = CDate(shtDay.Cells(5, dateColumn)) endDate = CDate(shtDay.Cells(i - 1, dateColumn)) normalDayColor = shtSetup.Cells(8, 9).Interior.color redDayColor = shtSetup.Cells(9, 9).Interior.color For d = startDate To endDate If Format(d, "yyyy") <> lastDayYear Then lastDayYear = Format(d, "yyyy") createRedDayArray lastDayYear, rda() End If newColor = IIf(isRedDay(d, rda()), redDayColor, normalDayColor) If shtDay.Cells(5 + CLng(d - startDate) * 4, 2).Interior.color <> newColor Then shtDay.Cells(5 + CLng(d - startDate) * 4, 2).Interior.color = newColor noOfChanges = noOfChanges + 1 End If Next MsgBox "Färgen ändrades för " & noOfChanges & " dagar.", vbInformation End Function