Not Sure if you can do that with a textbox/shape object.
But you can do this by entering your search criteria into a Cell/Range and using a WorkSheet_Change event like this.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sht As Worksheet
Dim DataRange As Range, rngToLook As Range
Dim myButton As OptionButton
Dim SearchString As String, ButtonName As String
Dim myField As Long
Set rngToLook = Intersect(Target, Range("D2"))
If Not rngToLook Is Nothing Then
'Unfilter Data (if necessary)
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
'Filtered Data Range
Set DataRange = Range("A4:E31")
'Retrieve User's Search Input
mySearch = rngToLook
'Determine if user is searching for number or text
If IsNumeric(mySearch) = True Then
SearchString = "=" & mySearch
Else
SearchString = "=*" & mySearch & "*"
End If
'Loop Through Option Buttons
For Each myButton In ActiveSheet.OptionButtons
If myButton.Value = 1 Then
ButtonName = myButton.Text
Exit For
End If
Next myButton
'Determine Filter Field
myField = WorksheetFunction.Match(ButtonName, DataRange.Rows(1), 0)
'Filter Data
DataRange.AutoFilter _
Field:=myField, _
Criteria1:=SearchString, _
Operator:=xlAnd
End If
End Sub
Bookmarks