Bonjour,
Une autre proposition à étudier.
Cdlt.
Public Sub Delete_rows()
Dim lastCol As Long, lastRow As Long, lRow As Long
Dim rng As Range, rng2 As Range
Dim n As Double
Const RW As Long = 2
With ActiveSheet
lastCol = .Cells(RW, .Columns.Count).End(xlToLeft).Column
lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For lRow = RW To lastRow
Set rng = .Cells(lRow, 1).Offset(, 2).Resize(, lastCol - 3)
n = WorksheetFunction.Max(rng)
If n < 5 Then
If rng2 Is Nothing Then
Set rng2 = .Cells(lRow, 1).Resize(, lastCol)
Else
Set rng2 = Union(rng2, .Cells(lRow, 1).Resize(, lastCol))
End If
End If
Next lRow
If Not rng2 Is Nothing Then rng2.Delete
End With
End Sub