Option Explicit
Sub Date_recente()
Dim DerLig_f1 As Long, DerLig_f2 As Long, i As Long
Dim f1 As Worksheet, f2 As Worksheet
Application.ScreenUpdating = False
Set f1 = Sheets("table")
Set f2 = Sheets("ORIGINAL ET ATTENDU")
DerLig_f1 = f1.Range("A" & Rows.Count).End(xlUp).Row
DerLig_f2 = DerLig_f1 + 3
f2.Cells.ClearContents
'Copie de la feuille "Table" vers feuille "ORIGINAL ET ATTENDU"
f1.Range("A1:F" & DerLig_f1).Copy f2.Range("A4")
'Tri par Opr_numope et Phase_cal_date_fin_reel (ordre descendant)
f2.Select
ActiveWorkbook.Worksheets("ORIGINAL ET ATTENDU").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("ORIGINAL ET ATTENDU").Sort.SortFields.Add Key:=Range("A5:A" & DerLig_f2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("ORIGINAL ET ATTENDU").Sort.SortFields.Add Key:=Range("F5:F" & DerLig_f2), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("ORIGINAL ET ATTENDU").Sort
.SetRange Range("A4:F" & DerLig_f2)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'on ne conserve que les dates les plus récentes
For i = DerLig_f2 To 5 Step -1
If Cells(i, "A") = Cells(i - 1, "A") Then
Rows(i).EntireRow.Delete
End If
Next i
Set f1 = Nothing
Set f2 = Nothing
End Sub