Filter as i type search bar

Perhaps an in place Advanced AutoFilter.

All headers must be unique.
Copy the header row to sheet2 row 1
This uses the sheet code names.
Code:
Private Sub TextBox1_Change()
    Dim i As Integer
    
If Len(TextBox1.Value) = 0 Then
    With Sheet2
        For i = 1 To 16
            .Cells(i + 1, i).Value = ""
        Next i
    End With
    If Sheet1.FilterMode Then Sheet1.ShowAllData
Else
    With Sheet2
    For i = 1 To 16
        .Cells(i + 1, i).Value = "*" & Sheet1.TextBox1.Value & "*"
    Next i
    End With
    Call AdvancedFilter
End If
End Sub


Private Sub AdvancedFilter()
    Dim lr As Long, filtrng As Range

lr = Split(Mid(Sheet1.UsedRange.Address, 2), "$")(3)
Set filtrng = Sheet1.Range("A5:P" & lr)
filtrng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheet2.Range("A1:P17")
End Sub
 

Attachments

  • SEARCH BAR help_v2.xlsm
    312 KB · Views: 18
Back
Top