¿Cómo crear una tabla resumen a partir de múltiples tablas dinámicas con VBA?

Crear una tabla resumen a partir de múltiples tablas dinámicas utilizando VBA implica automatizar el proceso de extracción y consolidación de información clave de cada tabla dinámica. Aquí te guiaré paso a paso sobre cómo puedes logarlo:

Paso 1: Configuración Inicial

Antes de comenzar, asegúrate de que todas tus tablas dinámicas están listas y que tienes un espacio vacío en tu hoja de trabajo o en una nueva hoja para crear la tabla resumen.

Paso 2: Acceso al Editor de VBA

  • Abre Excel y presiona `Alt + F11` para abrir el Editor de VBA.
  • En el menú, selecciona `Insertar` -> `Módulo` para crear un nuevo módulo donde escribirás tu código de VBA.

Paso 3: Escritura del Código VBA

Aquí tienes un ejemplo de cómo puede estructurarse el código para recopilar información de varias tablas dinámicas:

Sub CrearTablaResumen()

    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pc As PivotCache
    Dim resumenWS As Worksheet
    Dim filaInicio As Integer
    Dim fila As Integer
    Dim col As Integer

    ' Asignar la hoja donde irán los resultados
    On Error Resume Next
    Set resumenWS = ThisWorkbook.Worksheets("Resumen")
    On Error GoTo 0
    
    If resumenWS Is Nothing Then
        Set resumenWS = ThisWorkbook.Worksheets.Add
        resumenWS.Name = "Resumen"
    Else
        resumenWS.Cells.Clear
    End If

    filaInicio = 2 ' Dejar espacio para encabezados
    fila = filaInicio
    
    resumenWS.Cells(1, 1).Value = "Nombre de Tabla Dinámica"
    resumenWS.Cells(1, 2).Value = "Campo"
    resumenWS.Cells(1, 3).Value = "Elemento"
    resumenWS.Cells(1, 4).Value = "Valor"

    ' Iterar sobre cada hoja
    For Each ws In ThisWorkbook.Worksheets
        ' Iterar sobre cada tabla dinámica en la hoja
        For Each pt In ws.PivotTables
            ' Obtener el nombre de la tabla dinámica
            resumenWS.Cells(fila, 1).Value = pt.Name
            
            ' Extraer y colocar datos clave
            For Each pf In pt.PivotFields
                If pf.Orientation = xlDataField Then
                    resumenWS.Cells(fila, 2).Value = pf.Name
                    For Each pi In pf.PivotItems
                        resumenWS.Cells(fila, 3).Value = pi.Name
                        resumenWS.Cells(fila, 4).Value = pi.Value
                        fila = fila + 1
                    Next pi
                End If
            Next pf
        Next pt
    Next ws

    MsgBox "Tabla resumen creada con éxito en la hoja 'Resumen'."
    
End Sub

Paso 4: Ejecutar el Código

  • Guarda tu <em>workbook</em> habilitado para macros (extensión `.xlsm`).
  • En el Editor de VBA, selecciona `Run` -> `Run Sub/UserForm` o presiona `F5` para ejecutar el código.
  • Revisa la nueva hoja llamada «Resumen», donde deberías ver los datos consolidados de las tablas dinámicas.

Notas Adicionales

  • Este script asume que estás interesado en los campos de datos de las tablas dinámicas.
  • Puedes modificar las variables y lógica según tus necesidades específicas, como seleccionar ciertos campos o agregar condiciones adicionales.
  • Asegúrate de que las tablas dinámicas están actualizadas para obtener resultados precisos.

Siguiendo estos pasos, deberías poder consolidar la información de tus tablas dinámicas en una tabla resumen de manera eficiente.

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