Private Sub Worksheet_Change(ByVal Target As Range)
Dim plage As Range
If Intersect(Target, [Z:Z]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
ActiveSheet.AutoFilterMode = False 'si le filtre est en place
[Z:Z].AutoFilter 1, "x" 'filtre automatique
Set plage = [Z:Z].SpecialCells(xlCellTypeVisible).EntireRow
Set plage = Intersect(plage, [B:C,L:Q])
ActiveSheet.AutoFilterMode = False 'désactive le filtre
'---restitution---
With Sheets("Feuil2") 'nom à adapter
.Cells.ClearContents 'RAZ
plage.Copy .[A1]
End With
End Sub