Option Explicit
Private Sub CommandButton1_Click()
Dim Tablo(), Tableau() [COLOR=SeaGreen]'colonne K, contenus retenus[/COLOR]
Dim Derli As Long, X As Long, N As Long, I As Integer, Li As Long, L As Long
Derli = [K65536].End(xlUp).Row
Range("A3:O" & Derli).Sort Key1:=Range("K3"), Order1:=xlAscending
Application.DisplayAlerts = False
[COLOR=SeaGreen] 'Ajout d'une feuille "Base" copie de la première[/COLOR]
ActiveSheet.Copy after:=ActiveSheet
ActiveSheet.Name = "Base"
[COLOR=SeaGreen] 'construction du tableau des lignes gardées jusqu'à l'avant-dernière année[/COLOR]
ReDim Tablo(Derli + 1)
For N = 0 To Derli
Tablo(N) = Cells(N + 3, "K")
Tablo(N + 1) = Cells(N + 4, "K")
If Year(Tablo(N + 1)) > Year(Tablo(N)) Then
I = I + 1
ReDim Preserve Tableau(I)
Tableau(I) = Tablo(N)
Li = N
End If
Next
[COLOR=SeaGreen] 'ajout feuille temporaire pour les lignes gardées[/COLOR]
ActiveSheet.Copy after:=ActiveSheet
ActiveSheet.Name = "TMP"
ActiveSheet.Range("A3:O" & Derli).ClearContents
Sheets("Base_sinistres").Select
'ajout des lignes de la dernière année
L = 2
For N = 3 To Derli
For X = 1 To I
If Cells(N, "K") = Tableau(X) Then
L = L + 1
Range("A" & N & ":O" & N).Copy Sheets("TMP").Range("A" & L)
Exit For
End If
Next
Next
Sheets("Base").Range("A" & Li & ":O" & Derli).Copy Sheets("TMP").Range("A" & L + 1)
[COLOR=SeaGreen] 'suppression feuilles temporaires[/COLOR]
ActiveSheet.Delete
Sheets("Base").Delete
Sheets("TMP").Select
ActiveSheet.Name = "Base_sinistres"
End Sub