¿Cómo generar un informe a partir de una tabla dinámica usando VBA?

Generar un informe a partir de una tabla dinámica usando VBA en Excel es un proceso que puedes automatizar escribiendo un script. A continuación, te explicaré los pasos básicos para hacerlo, junto con un ejemplo de código VBA:

Pasos para generar un informe a partir de una tabla dinámica

  • Preparar los Datos: Asegúrate de que tus datos de origen estén bien organizados en una hoja de cálculo. Estos datos serán la base para tu tabla dinámica.
  • Insertar una Tabla Dinámica: Si aún no has creado una tabla dinámica, puedes hacerlo manualmente o a través de VBA.
  • Escribir el Código VBA: Puedes escribir un script que automatice la creación de la tabla dinámica y genere un informe a partir de ella.

Ejemplo de Código VBA

Este ejemplo asume que ya tienes una hoja de datos llamada «Datos» y planeas crear un informe en una hoja nueva llamada «Informe»:

Sub GenerarInformeDesdeTablaDinamica()
    Dim wsDatos As Worksheet
    Dim wsInforme As Worksheet
    Dim ptCache As PivotCache
    Dim pt As PivotTable
    Dim rngDatos As Range

    ' Establecer la hoja de datos y el rango
    Set wsDatos = ThisWorkbook.Worksheets("Datos")
    Set rngDatos = wsDatos.Range("A1").CurrentRegion  ' Asegúrate de que este rango cubre todos tus datos

    ' Crear una nueva hoja para el informe
    On Error Resume Next
    Set wsInforme = ThisWorkbook.Worksheets("Informe")
    On Error GoTo 0
    If wsInforme Is Nothing Then
        Set wsInforme = ThisWorkbook.Worksheets.Add
        wsInforme.Name = "Informe"
    Else
        wsInforme.Cells.Clear
    End If

    ' Crear el punto de caché de la tabla dinámica
    Set ptCache = ThisWorkbook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=rngDatos)

    ' Crear la tabla dinámica
    Set pt = ptCache.CreatePivotTable( _
        TableDestination:=wsInforme.Cells(1, 1), _
        TableName:="TablaDinamicaInforme")

    ' Configurar los campos de la tabla dinámica
    With pt
        .PivotFields("Campo1").Orientation = xlRowField
        .PivotFields("Campo2").Orientation = xlColumnField
        .PivotFields("Campo3").Orientation = xlDataField
    End With

    ' Aplicar formato al informe
    wsInforme.Rows("1:1").Font.Bold = True
    wsInforme.Columns.AutoFit

    MsgBox "Informe generado exitosamente."
End Sub

Notas Importantes:

  • Modificar los Nombres de los Campos: Cambia «Campo1», «Campo2», y «Campo3» a los nombres reales de tus campos de datos.
  • Rango de Datos: Asegúrate de que `rngDatos` cubre todo el rango de tus datos.
  • Personalización: Puedes personalizar la tabla dinámica y el informe según tus necesidades, como añadir subtotales, cambiar formatos, etc.

Ejecución del Script

  • Abre Excel y presiona `Alt + F11` para abrir el Editor de VBA.
  • Inserta un nuevo módulo (clic derecho en el proyecto -> Insertar -> Módulo).
  • Copia y pega el código anterior en el módulo.
  • Cierra el Editor de VBA y vuelve a Excel.
  • Ejecuta el script presionando `Alt + F8`, selecciona `GenerarInformeDesdeTablaDinamica` y haz clic en «Ejecutar».

Siguiendo estos pasos, deberías poder generar un informe automáticamente usando VBA 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