Cómo crear una Tabla Dinámica con Función de Búsqueda Predictiva



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.