The attached has a different solution because using the previous technique was taking far too long to produce reliable results - each time a text box was changed it took an age to update the sheet. This is because there are too many data in column D.
Instead, there is a macro blah4 which transforms the data in Sheet1 and puts it into Sheet3 (you could filter this new table in a similar way to how you did it it on Sheet1 but I used a pivot table instead which is fast and flexible).
The pivot table is on Sheet3 around cell K8. Above it are some text boxes that work in a similar way to your text boxes but they work on the pivot table instead. Be aware that the text boxes only affect the 4 fields they relate to and do not affect any other filters you may have applied to the other fields.
If you choose to update Sheet1 with new data, you will need to delete the data on Sheet3 only from row 2 downwards, then run blah4, then update the extent of the range of the pivot table source data.
You will only need to run blah4 once when new data are placed in Sheet1
p45cal Everyone: If I've helped and you can't be bothered to acknowledge it, I can't be bothered to look at further posts from you.