A tester:
Sub test()
Dim tablo(), New_tab()
With Worksheets("Feuil1")
derlgn = .Range("A" & Rows.Count).End(xlUp).Row
tablo = .Range("A1:A" & derlgn).Value2
k = 0
For i = 2 To UBound(tablo, 1)
If Year(CDate(tablo(i, 1))) < Year(CDate(Date)) Then
ReDim Preserve New_tab(k)
New_tab(k) = CDate(tablo(i, 1))
k = k + 1
ElseIf Year(CDate(tablo(i, 1))) = Year(CDate(Date)) Then
If CInt(Format(CDate(tablo(i, 1)), "ww", vbMonday, vbFirstFourDays)) < CInt(Format(CDate(Date), "ww", vbMonday, vbFirstFourDays)) Then
ReDim Preserve New_tab(k)
New_tab(k) = CDate(tablo(i, 1))
k = k + 1
End If
End If
Next i
.Rows(2).Resize(UBound(tablo, 1)).ClearContents
.Range("A2").Resize(UBound(New_tab, 1) + 1) = Application.Transpose(New_tab)
End With
End Sub