Sub Nettoyer()
Dim a, ligdeb&, w As Worksheet, P As Range
a = Array("M1", "M2", "M3", "M4", "M5") 'liste des feuilles à traiter
ligdeb = 7 '1ère ligne à traiter
Application.ScreenUpdating = False
For Each w In Worksheets
If IsNumeric(Application.Match(w.Name, a, 0)) Then
Set P = Intersect(w.Rows(ligdeb & ":" & w.Rows.Count), w.UsedRange.EntireRow)
If Not P Is Nothing Then
P.Columns(1).Insert xlToRight 'insère une colonne auxiliaire
P.Columns(1) = "=1/SIGN(SUMPRODUCT(N(RC[5]:RC[20]<>"""")))"
P.Columns(1) = P.Columns(1).Value 'supprime les formules
P.Sort P(1), xlAscending, Header:=xlNo 'tri pour regrouper et accélérer
On Error Resume Next 'si aucune SpecialCell
P.Columns(1).SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete 'supprime les valeurs d'erreur
P.Columns(1).Delete xlToLeft 'supprime la colonne auxiliaire
On Error GoTo 0
End If
End If
Next
End Sub