Another option:-
Sub Colorcell()
Dim Rng As Range, Dn As Range, nRng As Range, Temp As Range, col As Integer, t
Set Rng = Range("K7:AQ2139")
For Each Dn In Rng
If Not IsEmpty(Dn.Value) And Dn.Interior.ColorIndex = xlNone Then
Set nRng = Dn
Do While Not IsEmpty(Dn.Offset(1, 2).Value) And Dn.Offset(1, 2).Interior.ColorIndex = xlNone
Set nRng = Union(nRng, Dn.Offset(1, 2))
Set Dn = Dn.Offset(1, 2)
Loop
If nRng.Count > 1 Then
Select Case nRng.Count
Case 2: col = 3
Case 3: col = 44
Case Is >= 4: col = 23
End Select
nRng.Interior.ColorIndex = col
End If
End If
Set nRng = Nothing
Next Dn
End sub