Sub Supprligne0()
Dim derLig&, macol&
Application.ScreenUpdating = False
With Sheets("Forecast BI")
If .FilterMode Then .ShowAllData
derLig = .Cells(.Rows.Count, "t").End(xlUp).Row
macol = .UsedRange.Column + .UsedRange.Columns.Count
On Error GoTo ERREUR
.Columns(macol).Resize(derLig).Formula = "=IF(SUMPRODUCT(ABS(c1:n1))=0,NA(),ROW())"
.Columns(macol).Resize(derLig).Value = .Columns(macol).Resize(derLig).Value
.Range(.Cells(1, "a"), .Cells(derLig, macol)).Sort key1:=.Cells(1, macol), order1:=xlAscending, Header:=xlNo
On Error Resume Next
.Columns(macol).Resize(derLig).SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
On Error GoTo ERREUR
.Columns(macol).Delete
MsgBox "sur " & Format(derLig, "#,##0") & " lignes, " & vbLf & _
Format((derLig - Application.CountA(Columns("t:t"))), "#,##0") & " ont été supprimées."
Exit Sub
ERREUR:
MsgBox "Une erreur s'est produite : " & Err.Description
.Columns(macol).Delete
End With
End Sub