Private Sub Worksheet_Change(ByVal Target As Range)
Dim t, v, i&, j&, ref
If Intersect(Range("f:am"), Target) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
t = Range("f1:am1").Resize(2)
For j = 1 To UBound(t, 2)
t(1, j) = Trim(t(1, j))
If t(1, j) <> "" Then ref = ref & " / " & t(2, j)
Next j
If ref <> "" Then ref = Mid(ref, 4)
[an1] = ref
With Me.ListObjects(1)
Me.ListObjects(1).AutoFilter.ShowAllData
If ref = "" Then .ListColumns(1).DataBodyRange.EntireRow.Hidden = False: Exit Sub
.ListColumns(1).DataBodyRange.EntireRow.Hidden = True
For i = 1 To .ListRows.Count
v = Range("f1:am1").Offset(i + 1)
For j = 1 To UBound(t, 2)
If t(1, j) <> "" And v(1, j) <> "" Then .ListRows(i).Range.EntireRow.Hidden = False
Next j
Next i
End With
End Sub