Sub SupprLigne()
Dim formuA, formuB, der&, debut
debut = Timer
Application.ScreenUpdating = False
Application.Goto Sheets("tableau 2").Range("a1"), True
Sheets("tableau 1").Columns("a:f").Copy Columns(1)
Rows(1).Delete
formuA = Range("f3").FormulaR1C1
formuB = "=if(" & Mid(formuA, 2) & "=0,na(),row())"
der = Cells(Rows.Count, "a").End(xlUp).Row
Range("f3").Formula = formuB
Range("f3").AutoFill Range("f3:f" & der).Cells
Range("f3:f" & der).Value = Range("f3:f" & der).Value
Range("a3:f" & der).Sort key1:=Range("f3"), order1:=xlAscending, Header:=xlNo
On Error Resume Next
Range("f3:f" & der).Cells.SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Delete shift:=xlShiftUp
der = Cells(Rows.Count, "a").End(xlUp).Row
Range("f3").Formula = formuA
Range("f3").AutoFill Range("f3:f" & der).Cells
Range("f3:f" & der).Value = Range("f3:f" & der).Value
MsgBox Format(Timer - debut, "0.0\ sec.")
End Sub