I think I understand now.
Try again
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Address(0, 0) <> "C2" Then Exit Sub
Dim r As Range, rHide As Range
Set rHide = Range("A1")
With Range("B5").CurrentRegion.Columns(2)
.EntireRow.Hidden = False
If Target.Value = "All" Then Exit Sub
For Each r In .SpecialCells(4).Areas
If r(0, 1) <> Target.Value Then
Set rHide = Union(rHide, r, r(0, 1))
End If
Next r
If rHide.Count > 1 Then Intersect(rHide, Columns(2)).EntireRow.Hidden = True
End With
End Sub
Bookmarks