Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastLig As Long
Application.ScreenUpdating = False
'Si la cellule modifié est L16
If Target.Address = "$L$16" Then
'Les données seront copiées à partir de la ligne 26 de la feuille Consultation
Range("A26").CurrentRegion.Clear
'Si la cellule L16 est non vide
If Target.Value <> "" Then
With Sheets("Base Clés")
'On enlève l'éventuel filtre automatique
.AutoFilterMode = False
'la ligne de la dernière cellule remplie de la colonne A de feuille Base
LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
'On filtre sur la colonne 12 de la feuille base, en prenant comme critère la valeur de L16 (Target)
.Range("L1:L" & LastLig).AutoFilter Field:=1, Criteria1:=Target.Value
'On copie les lignes issues du filtre auto (sans la ligne des titres)
If .Range("A1:A" & LastLig).SpecialCells(xlCellTypeVisible).Count > 1 Then
.Range("A2:A" & LastLig).SpecialCells(xlCellTypeVisible).EntireRow.Copy Range("A26")
End If
'On enlève notre filtre automatique
.AutoFilterMode = False
End With
End If
End If
End Sub