Private Sub TextBox1_Change()
Dim rngData As Range
Dim rngFind As Range
Dim rngFindAll As Range
Dim strFirstAddress As String
Set rngData = ActiveSheet.ListObjects("Table4").DataBodyRange
' unhide all
rngData.EntireRow.Hidden = False
If Len(TextBox1.Text) = 0 Then
' show all
Else
With rngData
Set rngFind = .Cells.Find(TextBox1.Text, , xlValues, xlPart, , , False)
If Not rngFind Is Nothing Then
Set rngFindAll = rngFind.EntireRow
strFirstAddress = rngFind.Address
Do
Set rngFindAll = Union(rngFindAll, rngFind.EntireRow)
Set rngFind = .FindNext(rngFind)
Loop While Not rngFind Is Nothing And strFirstAddress <> rngFind.Address
.EntireRow.Hidden = True
rngFindAll.EntireRow.Hidden = False
End If
End With
End If
End Sub
Notice the table reference has changed. You have 3 tables on that sheet with overlapping ranges.
Bookmarks