Private Sub Worksheet_Change(ByVal Target As Range)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
If Target.Address <> "$F$1" Then Exit Sub 'si le changement a lieu ailleurs qu'en F1, sort de la procédure
If Target.Value = "" Then 'condition : si F1 est effacée
With Sheets("pose") 'prend en compte l'onglet "pose"
'si A2 n'est pas vide, efface les anciennes données
If .Range("A2") <> "" Then .Range("A2:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row).Clear
End With 'fin de la prise en compte de l'onglet "pose"
Exit Sub 'sort de la procédure
End If 'fin de la condition
If Selection.Cells.Count > 1 Then Exit Sub 'si plusieurs cellules sélectionnées, sort de la procédure
Application.ScreenUpdating = False 'masque les changements à l'écran
With Sheets("pose") 'prend en compte l'onglet "pose"
'si A2 n'est pas vide, efface les anciennes données
If .Range("A2") <> "" Then .Range("A2:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row).Clear
End With 'fin de la prise en compte de l'onglet "pose"
dl = Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 1 (=A)
Set pl = Range("A2:A" & dl) 'définit la palge pl
Range("A1").AutoFilter 'active le filtre automatique
Range("A1").AutoFilter field:=2, Criteria1:=">" & Range("F1").Value 'filtre automatique de la colonne 2 en fonction du ctritère : > à F1
On Error Resume Next 'gestion des erreurs (passe à la ligne suivante si une erreur a été générée, si la palge des cellules visibles de pl est vide, cela génère une erreur)
pl.SpecialCells(xlCellTypeVisible).Copy Sheets("pose").Range("A2") 'copy les cellules visibles de la plage pl et les colle en A2
Range("A1").AutoFilter 'désactive le filtre automatique
Application.ScreenUpdating = True 'afficheles changements à l'écran
End Sub