Voici :
- le module se trouve dans la feuille elle-même.
- explications ...
Quand tu sélectionnes (ou actives) la feuille, cette macro se déroule et fait appel automatiquement à la macro filtrer
Private Sub Worksheet_Activate()
filtrer
End Sub
Quand tu changes une valeur, si celle-ci n'est ni G1, ni B2, il ne passe rien, sinon cette macro se déroule et fait appel automatiquement à la macro filtrer
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Union(Range("G1"), Range("B2"))) Is Nothing Then Exit Sub
filtrer
End Sub
Et voici la macro filtrer :
Sub filtrer()
Sheets("Liste complète_FVI").Range("Tableau2[#All]").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Range("A9:B10"), CopyToRange:=Range( _
"Tableau22[#Headers]"), Unique:=False
End Sub
Elle prend les données du Tableau2, onglet Liste complète_FVI
et selon les critères en A9:B10, elle exécute un filtrage et copie les valeurs selon les en-têtes du Tableau22 ici.
Ce type de macro est aisément obtenue par apprentissage d'un filtre avancé.