Uniendo el código, según tus indicaciones, me da el siguiente error en la línea que te marco:
CÓDIGO
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$A$1", "$A$2"
Application.EnableEvents = False
Target = DateSerial(Year(Date), Day(CDate(Target) + 1), 1)
Application.EnableEvents = True
End Select
Select Case Target.Address
Case "$A$1", "$A$2"
Application.EnableEvents = False
Target = DateSerial(Year(Date), Day(CDate(Target) + 1), 1)
Application.EnableEvents = True
End Select
If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
For I = 3 To Range("A" & Rows.Count).End(xlUp).Row
If Range("A2") = "" Then
ki = 2
kf = Month(Range("A1"))
Else
If Range("A2") < Month(Range("A1")) Then Exit Sub
ki = (Month(Range("A1")) * 3) - 1
kf = Range("A2") - Month(Range("A1")) + 1
End If
z1 = 0: z2 = 0: z3 = 0
co = 0
For j = 1 To kf
z1 = z1 + Cells(I, ki) >>>error
z2 = z2 + Cells(I, ki + 1)
z3 = z3 + Cells(I, ki + 2)
ki = ki + 3
co = co + 1
Next
Cells(I, "AL") = z1 / co
Cells(I, "AM") = z2 / co
Cells(I, "AN") = z3 / co
Next
End If
End Sub
Saludos.