Bonjour,
avec un filtre avancé par macro simple :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
' Exit Sub ' à démaquer le temps de la mise en place des onglets
If Sh.Name <> "Liste" And Sh.Name <> "Formulaire" And Sh.Name <> "Données" Then
Sheets("Données").Cells(Rows.Count, 1).End(xlUp).CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sh.Range("A1").CurrentRegion, CopyToRange:=Sh.Range("A4").CurrentRegion.Resize(1), Unique:=False
End If
End Sub
Il suffit ensuite de changer le nom de l'onglet qui est repris automatiquement dans la cellule A2 qui sert (avec A1) de filtre. Dans ce cas, quitter l'onglet et y revenir pour mettre à jour. Il est possible de masquer les lignes 1 à 3 si nécessaire.
à mettre dans Thisworkbook ...