I think that you can achieve what you want, provided you are open to using a macro-enabled file (*.xlsm). Try this as a "proof of concept".
In a fresh worksheet ..
1. Set up a heading in Cell A2 and a list of text below. Perhaps even use this list.
Excel 2016 |
---|
|
---|
| A |
---|
1 | |
---|
2 | Hdr1 |
---|
3 | Tom |
---|
4 | Bains |
---|
5 | Tommy Smith |
---|
6 | Jon kenny |
---|
7 | Waits |
---|
8 | Jonathan Kearns |
---|
9 | Ted |
---|
10 | Joe Rainsford |
---|
|
---|
2. On the Developer ribbon tab, click the drop-down under 'Insert' in the Controls section and from the ActiveX Controls section choose Text Box (ab| symbol) and draw a Text Box over cell A1
3. Right click the Text Box & choose Properties. Set the LinkedCell to A1. Close the Properties window and click Design Mode in the Developer ribbon to exit Design Mode.
4. In cell B1, enter the formula =A1 (
Later, if this works you might want to format B1 and/or A1 to white text so you don't see the changes there)
5. Right-click the sheet's name tab and choose "View Code".
6. Copy & Paste the code below into the main right hand pane that opens at step 5.
7. Close the Visual Basic window & test by typing into the Text Box. For example, if you type ai you should see the list above reduce to 3 names. Adding an n the list should reduce to 2 names. Clearing the text box should cause all names to reappear.
Code:
Private Sub Worksheet_Calculate()
Static sLast As String
Dim sCurr As String
sCurr = "*" & Range("B1").Text & "*"
If sCurr <> sLast Then
Range("A2:A100").AutoFilter Field:=1, Criteria1:=sCurr
sLast = sCurr
End If
End Sub