¿Cómo actualizar los filtros de una tabla dinámica según el valor de una celda con VBA?

Para actualizar los filtros de una tabla dinámica basándote en el valor de una celda específica utilizando VBA en Excel, puedes seguir estos pasos:

Sub ActualizarFiltroTablaDinamica()
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim filtroValor As String
    
    ' Establece la hoja de trabajo y la tabla dinámica
    Set ws = ThisWorkbook.Sheets("NombreHoja") ' Cambia "NombreHoja" según corresponda
    Set pt = ws.PivotTables("NombreTablaDinamica") ' Cambia "NombreTablaDinamica" según corresponda

    ' Especifica el campo que deseas filtrar
    Set pf = pt.PivotFields("NombreCampo") ' Cambia "NombreCampo" según corresponda

    ' Obtén el valor para el filtro de la celda específica
    filtroValor = ws.Range("A1").Value ' Cambia "A1" por la celda que contiene el valor

    ' Limpiar los filtros existentes en el campo
    pf.ClearAllFilters

    ' Aplicar el nuevo filtro
    If filtroValor <> "" Then
        pf.CurrentPage = filtroValor
    Else
        pf.ClearAllFilters ' Opcional: Limpiar filtro si la celda está vacía
    End If
End Sub
  • Abre el Editor de VBA: Presiona `ALT` + `F11` para abrir el editor de VBA en Excel.
  • Inserta un Módulo Nuevo: Haz clic derecho en «VBAProject (TuArchivo.xlsx)» y selecciona `Insertar > Módulo` para crear un nuevo módulo.
  • Escribe el Código: Copia y pega el siguiente código, ajustando los nombres de la tabla dinámica, el campo que deseas filtrar, y la celda que contiene el valor del filtro:
  • Ajustes Adicionales:
    • Cambia `»NombreHoja»` al nombre real de la hoja de Excel que contiene la tabla dinámica.
    • Cambia `»NombreTablaDinamica»` al nombre de la tabla dinámica.
    • Cambia `»NombreCampo»` al nombre del campo dentro de la tabla dinámica por el que deseas filtrar.
    • Cambia `»A1″` a la referencia de la celda que contiene el valor que deseas usar para el filtro.
  • Ejecutar el Script: Puedes ejecutar este macro haciendo clic en `F5` dentro del editor VBA, o asignándolo a un botón o evento en la hoja de Excel.

Este script ajusta dinámicamente el filtro de un campo específico en una tabla dinámica en función del valor de una celda, permitiendo una manipulación rápida y automatizada de los datos en Excel.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

Deja un comentario