'la plage des 12 mois
'J6:P11,R6:X11,Z6:AF11,AH6:AN11,J15:P20,R15:X20,Z15:AF20,AH15:AN20,J24:P29,R24:X29,Z24:AF29,AH24:AN29
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Firstday&, p As Range, r As Range, I&, NbJour&, J&
Application.ScreenUpdating = False
Application.EnableEvents = False
Set p = Range("j6,r6,z6,ah6,j15,r15,z15,ah15,j24,r24,z24,ah24")
If Target.Address = "$J$2" Then
For I = 1 To 12
Set r = p.Areas(I).Resize(6, 7) 'determine la plage du mois(i)avec sa cells(1)
r.Value = "": r.NumberFormat = "dd"
Firstday = Weekday(DateSerial([j2], I, 1), vbUseSystemDayOfWeek) - 1 'le jour de la semaine du premier du mois
NbJour = Day(DateSerial([j2], I + 1, 0)) 'le nombre de jour dans le mois
For J = 1 To NbJour
r.Cells(Firstday + (J)) = DateSerial([j2], I, J)
Next
Next
End If
Application.EnableEvents = True
End Sub