Sub GarderMax()
Dim nlig&, xrg As Range
Application.ScreenUpdating = False
nlig = Range("a" & Rows.Count).End(xlUp).Row
Range("g:h").Insert Shift:=xlToRight
Range("g2").FormulaR1C1 = "=N(RC[-5])"
Range("g2:g" & nlig).FillDown
Range("g2:g" & nlig).Value = Range("g2:g" & nlig).Value
Range("a1:g" & nlig).Sort key1:=Range("a1"), order1:=xlAscending, _
key2:=Range("g1"), order2:=xlAscending, Header:=xlYes
Range("h2").FormulaR1C1 = "=1/(RC[-7]<>R[1]C[-7])"
Range("h2:h" & nlig).FillDown
Range("h2:h" & nlig).Value = Range("h2:h" & nlig).Value
Range("a1:h" & nlig).Sort key1:=Range("h1"), order1:=xlAscending, Header:=xlYes
Set xrg = Range("h1:h" & nlig).Find(What:="#DIV/0!", After:=Range("h1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not xrg Is Nothing Then Range("a" & xrg.Row & ":a" & nlig).EntireRow.Delete
Range("g:h").Delete
Application.ScreenUpdating = True
End Sub