¿Cómo listar todas las tablas dinámicas en un libro con VBA?

Para listar todas las tablas dinámicas en un libro de Excel utilizando VBA, puedes crear un macro que recorra cada hoja de cálculo y luego cada tabla dinámica dentro de esas hojas. A continuación se presenta un ejemplo de código VBA que realiza esta tarea y lista todas las tablas dinámicas, mostrando información básica como el nombre de la tabla dinámica y la hoja en la que se encuentra:

Sub ListarTablasDinamicas()
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim ultimaFila As Long
    Dim hojaLista As Worksheet

    ' Crear o seleccionar una hoja para listar las tablas dinámicas
    On Error Resume Next
    Set hojaLista = ThisWorkbook.Sheets("ListaTablasDinamicas")
    On Error GoTo 0
    
    If hojaLista Is Nothing Then
        Set hojaLista = ThisWorkbook.Sheets.Add
        hojaLista.Name = "ListaTablasDinamicas"
    Else
        hojaLista.Cells.Clear
    End If

    ' Encabezados
    hojaLista.Range("A1").Value = "Hoja"
    hojaLista.Range("B1").Value = "Tabla Dinámica"
    hojaLista.Range("C1").Value = "Rango de la tabla"

    ' Establecer la posición de inicio para listar
    ultimaFila = 2

    ' Recorrer cada hoja de cálculo en el libro
    For Each ws In ThisWorkbook.Worksheets
        ' Ignorar la hoja que estamos usando para listar
        If ws.Name <> hojaLista.Name Then
            ' Recorrer cada tabla dinámica en la hoja
            For Each pt In ws.PivotTables
                hojaLista.Cells(ultimaFila, 1).Value = ws.Name
                hojaLista.Cells(ultimaFila, 2).Value = pt.Name
                hojaLista.Cells(ultimaFila, 3).Value = pt.TableRange2.Address
                ultimaFila = ultimaFila + 1
            Next pt
        End If
    Next ws

    ' Ajustar el ancho de las columnas para mejor visibilidad
    hojaLista.Columns("A:C").AutoFit

    MsgBox "Se ha completado la lista de todas las tablas dinámicas en el libro."
End Sub

Cómo usar este código:

  • Abre Excel y presiona `ALT` + `F11` para abrir el Editor de VBA.
  • En el Editor de VBA, ve a `Insertar` > `Módulo` para crear un nuevo módulo.
  • Copia y pega el código anterior en el módulo recién creado.
  • Cierra el Editor de VBA.
  • Regresa a Excel, presiona `ALT` + `F8`, selecciona `ListarTablasDinamicas` y haz clic en `Ejecutar`.

Este código generará una nueva hoja llamada «ListaTablasDinamicas» (o reutilizará la que ya existe con ese nombre) y en ella colocará un listado con el nombre de cada tabla dinámica, la hoja en la que se encuentra y el rango que ocupa.

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