Sub essai3()
Application.ScreenUpdating = False
Range("A3:O" & Range("A65536").End(xlUp).Row).Sort Key1:=Range("K3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Dim tablign()
Dim coll As Collection
Set coll = New Collection
For N = 3 To Range("K65536").End(xlUp).Row
On Error Resume Next
coll.Add Year(Range("K" & N)), CStr(Year(Range("K" & N)))
On Error GoTo 0
Next N
ReDim tablign(1 To coll.Count)
For N = 1 To coll.Count
For m = 1 To Range("K65536").End(xlUp).Row
If IsDate(Range("K" & m)) Then
If Year(Range("K" & m)) = coll(N) And tablign(N) < Range("K" & m) Then
tablign(N) = Range("K" & m)
End If
End If
Next m
Next N
For N = LBound(tablign) To UBound(tablign)
lesdates = lesdates & tablign(N) & "-"
Next N
Tablo = Range("A3:O" & Range("A65536").End(xlUp).Row)
For N = LBound(Tablo) To UBound(Tablo) - 1
If Tablo(N, 1) = "S09" Then Tablo(N, 1) = ""
If InStr(lesdates, Tablo(N, 11)) = 0 Then Tablo(N, 1) = ""
Next N
Range("A3:O" & Range("A65536").End(xlUp).Row).ClearContents
ligne = 3
For N = LBound(Tablo) To UBound(Tablo)
If Tablo(N, 1) <> "" Then
For m = LBound(Tablo, 2) To UBound(Tablo, 2)
Cells(ligne, m) = Tablo(N, m)
Next m
ligne = ligne + 1
End If
Next N
Application.ScreenUpdating = True
End Sub