1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Private Sub Worksheet_Change(ByVal Target As Range)
Dim LastLig As Long
'Target désigne la plage de cellules qui vient d'être changée
Application.ScreenUpdating = False
'Si la cellule changée est B1 ( de la feuille active)
If Target.Address = "$B$1" Then
'On efface les données jouxtant A3
Range("A3").CurrentRegion.Clear
'Si la cellule B1 est non vide
If Target.Value <> "" Then
With Worksheets("Feuil1")
'On enlève l'éventuel filtre automatique de Feuil1
.AutoFilterMode = False
'LastLig désigne le N° de ligne de la dernière cellule remplie de la colonne A de Feuil1
LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
'On filtre la colonne A de Feuil1 sur le code entrée en B1 de Feuil2
.Range("A1:A" & LastLig).AutoFilter field:=1, Criteria1:=Target.Value
'On copie le résultat du filtre vers A3 de Feuil2 (colonnes A à X)
.Range("A1:X" & LastLig).SpecialCells(xlCellTypeVisible).Copy Range("A3")
'On enlève le filtre automatique
.AutoFilterMode = False
End With
End If
End If
End Sub |
Partager