Esta aplicación permite filtrar una tabla dinámica mediante el uso de un Cuadro de Texto sensible a las palabras que vaya ingresando el usuario. La búsqueda de palabras clave está asociada a un determinado campo de la tabla dinámica.
Desarrollando la Aplicación Paso a Paso
Aquí les dejo la base de datos para empezar el tutorial:
Descargar base de datos
01. Crea una nueva hoja y ponle como nombre: TD.
02. Accede a [Insertar] y luego a Tabla Dinámica.
03. Ingresa los datos solicitados en cada campo y luego haz clic en Aceptar:
- Tabla o Rango; con ayuda del mouse selecciona toda la tabla.
- ¿Donde desea colocar el informe de tabla dinámica?; haz referencia a la celda $B$6 de la hoja TD
04. Arrastra todos los campos necesarios dentro de la sección Filas de la Tabla Dinámica.
El primer campo que debes agregar es aquel que está ligado a las palabras clave de búsqueda. Ejem. "Si la búsqueda de palabras clave está asociada al nombre de los materiales; entonces agrega el campo Producto en primer lugar y luego el resto de campos."
05. Elije la opción Herramientas de Tabla Dinámica y establece como Tipo de Diseño de Informe : Tabular.
06. Haz clic en la pestaña Analizar (situado en la ficha Herramientas de Tabla Dinámica) y busca la opción Tabla Dinámica; despliega el menú y cambia el nombre de la tabla que viene por defecto a TD_Materiales.
07. Accede a la ficha Programador (Desarrollador) y despliega el menú Insertar, selecciona el control Cuadro de Texto Activex y dibújalo en la hoja de cálculo.
08. Selecciona el cuadro de texto que agregaste y dentro de su panel de propiedades busca el atributo nombre y asígnale: txt_buscador.
09. Accederás al editor de código visual basic. Selecciona control txt_Buscador, haz clic derecho sobre él y elige la opción "ver código" y pega el siguiente código fuente:
Nota: Reemplaza el nombre Tabla dinámica2 que aparece en el código y sustitúyelo por TD_Materiales. Puedes reemplazar también Producto por cualquier otro nombre de campo ligado al buscador.
Dim valor As String
Private Sub txt_buscador_Change()
If txt_buscador.Text <> "" Then
ActiveSheet.PivotTables("Tabla dinámica2").PivotFields("Producto"). _
ClearAllFilters
ActiveSheet.PivotTables("Tabla dinámica2").PivotFields("Producto").PivotFilters _
.Add Type:=xlCaptionContains, Value1:="*" & txt_buscador.Text & "*"
Else
ActiveSheet.PivotTables("Tabla dinámica2").PivotFields("Producto"). _
ClearAllFilters
ActiveSheet.PivotTables("Tabla dinámica2").PivotFields("Producto").PivotFilters _
.Add Type:=xlCaptionEquals, Value1:="'"
End If
End Sub
Private Sub txt_buscador_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 Or KeyCode = 46 Then
txt_buscador.Text = ""
End If
End Sub
Sub Nueva_Busqueda()
txt_buscador.Text = ""
txt_buscador.Activate
End Sub
10. De regreso a la hoja de cálculo, accede a la opción Formas de la ficha Insertar y dibuja un rectángulo que actuará de botón para limpiar los datos de búsqueda.
11. Haz clic derecho en el botón y utiliza la opción Asignar Macro para vincular la macro Nueva_Búsqueda al botón.
12. Deshabilita el Modo de Diseño.
13. Por último guarda el libro habilitado para macros.
Te dejo el ejemplo terminado:
Descargar
Puede apoyar esta web con una donación, cualquier cantidad es apreciada. Mediante la donación podrá ayudar a mantener el sitio y encontrar más cosas.