Sub Test()
Dim nmax, x$, n, a$(), datini&
nmax = 2000 'modifiable
Do
x = InputBox("Nombre de jours (maximum " & nmax & ") :", , x)
If x = "" Then Exit Sub
n = Int(Val(x))
Loop While n < 1 Or n > nmax
ReDim a(n - 1)
datini = Date - n + 1
a(0) = Format(datini, "dd/mm" & IIf(Year(datini) < Year(Date), "/yyyy", ""))
For n = 1 To UBound(a) - 1
a(n) = Format(datini + n, "dd/mm")
If a(n) = "01/01" Then a(n) = a(n) & "/" & Year(datini + n)
Next
a(n) = Date
'---affichage---
Application.ScreenUpdating = False
ActiveWindow.Zoom = 100
With Range("B4")
.ColumnWidth = 200 'largeur à adapter
.RowHeight = 409 'hauteur maximum
.WrapText = True 'renvoi à la ligne
.Font.Size = 12
.Value = Join(a, " - ")
For n = 1 To 20
.Rows.AutoFit 'ajustement
If .RowHeight > 400 Then .Font.Size = 12 - n / 2 Else Exit For 'diminution de la taille de la police
Next
Application.Goto .Cells, True 'cadrage
End With
End Sub