Bonjour,
avec utilisation de filtres avancés répétitifs
Private Sub Worksheet_Activate()
For i = 2 To 22 Step 4
Sheets("data").Range("B4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Cells(1, i).CurrentRegion, CopyToRange:=Cells(5, i).CurrentRegion.Resize(1), Unique:=False
Next
End Sub
la macro se lance et actualise les données quand tu affiches la feuille