Hola.
Supongamos el siguiente escenario:
--Rango de la matriz: B4:D23, el rango de lo escribirás en el VB ActiveSheet.Range("$B$4:$D$23")
--El valor que quieres que se filtre es la columna C, o sea el campo 2, (si fuera la D, sería el campo 3), la columna a filtrar la escribirás (enseguida de la matriz) en el VB AutoFilter Field:=2
--Valor para filtrar: El valor que elijas se quedará en la celda B2
Ahora los pasos para activar el VB
1.-Abre tu archivo de Excel.
2.- ALT+F11 (para abrir VB)
3.- Selecciona del menú Insertar/Userform
4.- Selecciona del menú Ver/Cuadro de herramientas.
5.- Del cuadro de herramientas elige el "cuadro de texto" (ab|) y arrástralo a la Userform.
6.- En la userform dale doble click al cuadro de texto y se abre una nueva ventana.
7.- Escribe lo siguiente:
Private Sub TextBox1_Change()
Range("B2").Select
ActiveCell.FormulaR1C1 = TextBox1
End Sub
8.- Del cuadro de herramientas elige el "botón de comando" (uno abajo y a la derecha del ab|) y arrástralo a la Userform.
9.- En la userform dale doble click al botón de comando y se abre una nueva ventana.
10.- Escribe lo siguiente:
Private Sub CommandButton1_Click()
Selection.CurrentRegion.Select
ActiveSheet.Range("$B$4:$D$23").AutoFilter Field:=2, Criteria1:=TextBox1
End Sub
Espero te sea útil la información.
Saludos!!