Option Explicit
Sub Calendrier()
Dim i&, j&, k&, nb_jours&, m&, cel As Range, _
dt As Date, mois, tablo(1 To 12)
Set cel = [N1]
[A1:L32] = ""
Application.ScreenUpdating = False
For i = LBound(tablo, 1) To UBound(tablo, 1)
m = m + 1
dt = DateSerial(cel.Value, m, 1)
tablo(i) = dt
Cells(1, i) = Format(tablo(i), "mmm")
mois = UCase(Left(Cells(1, i), 1)) & LCase(Right(Cells(1, i), Len(Cells(1, i)) - 1))
Cells(1, i) = mois
nb_jours = Day(DateSerial(Year(dt), Month(dt) + 1, 1) - 1)
j = 1
For k = 1 To nb_jours
j = j + 1
dt = DateSerial(cel.Value, m, k)
Cells(j, i) = dt
If IsDate(Cells(j, i).Value) And Cells(j, i).Value = Date Then
Cells(j, i).Interior.Color = vbRed
Cells(j, i).Font.Color = vbWhite
Else
Cells(j, i).Interior.Color = xlNone
Cells(j, i).Font.Color = vbBlack
End If
Next k
Next i
End Sub