Sub DatesManquantes()
Dim t, d As Object, i&, mini&, maxi&, n&, a(), b(), mes$
With Feuil1 'CodeName de la feuille
t = .Range("A4", .Range("A" & .Rows.Count).End(xlUp)(5)) '(5) assure au moins 2 éléments
End With
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(t)
If IsDate(t(i, 1)) Then d(CLng(t(i, 1))) = ""
Next
If d.Count Then
mini = Application.Min(d.keys)
maxi = Application.Max(d.keys)
If maxi - mini + 1 - d.Count Then
ReDim a(1 To maxi - mini + 1 - d.Count)
ReDim b(1 To maxi - mini + 1 - d.Count, 1 To 1)
For i = mini To maxi
If Not d.exists(i) Then
n = n + 1
a(n) = CDate(i)
b(n, 1) = CDate(i)
End If
Next
mes = Join(a, "-")
End If
End If
If Len(mes) > 1023 Then
With Workbooks.Add.Sheets(1) 'nouveau document
.Name = "Dates manquantes"
.[A1].Font.Bold = True
.[A1] = .Name
.[A2].Resize(n) = b
End With
Else
If n = 0 Then mes = "Aucune date..."
If n < 2 Then mes = mes & String(15, " ")
MsgBox mes, , "Dates manquantes"
End If
End Sub