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 27 28 29 30 31 32 33 34 35 36 37 38 39
|
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Fe As Worksheet
Dim LaPlage As Range
'seulement sur la colonne C
If Target.Column = 3 And Target <> "" Then
'je suppose que le nom de la feuille est en colonne B
'sur la ligne correspondante, à adapter ???
Set Fe = Worksheets(Target.Offset(0, -1).Value)
'définie la plage à filtrer (ici toute la feuille ???)
Set LaPlage = Plage(Fe)
'filtrage sur la colonne A avec la valeur de
'la colonne A de la feuille principale
LaPlage.AutoFilter 1, "=" & Target.Offset(0, -2)
'affiche la feuille
Fe.Select
End If
End Sub
Function Plage(Fe As Worksheet) As Range
'retourne toute la zone
'utilisée dans la feuille
With Fe
Set Plage = .Range(.Cells(1, 1), _
.Cells(.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
End Function |
Partager