Private Sub Worksheet_Change(ByVal r As Range)
Dim source, rest(), i&, n&, j%
If FilterMode Then ShowAllData 'si la feuille est filtrée
source = Range("H3", Range("M" & Rows.Count).End(xlUp)(3)) 'matrice, plus rapide
ReDim rest(1 To UBound(source), 1 To 6)
For i = 1 To UBound(rest)
If Val(CStr(source(i, 4))) > 7 And (CStr(source(i, 6)) = "2" Or CStr(source(i, 6)) = "3") Then
n = n + 1
For j = 1 To 6
rest(n, j) = source(i, j)
Next
End If
Next
Application.EnableEvents = False
If n Then [A3].Resize(n, 6) = rest 'restitution
Range("A" & n + 3 & ":F" & Rows.Count) = "" 'RAZ en dessous
Application.EnableEvents = True
End Sub