¿Cómo crear una tabla dinámica a partir de un rango dinámico usando VBA?

Crear una tabla dinámica a partir de un rango dinámico utilizando VBA en Excel es un proceso que implica varios pasos. A continuación, te explicaré cómo hacerlo:

Sub CrearTablaDinamica()
    Dim ws As Worksheet
    Dim pvtCache As PivotCache
    Dim pvtTable As PivotTable
    Dim dataRange As Range
    Dim wkBook As Workbook
    Dim lastRow As Long
    Dim lastCol As Long

    ' Establecer variables iniciales
    Set wkBook = ThisWorkbook
    Set ws = wkBook.Sheets("Hoja1")

    ' Encontrar la última fila y columna del rango de datos
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    
    ' Definir el rango dinámico
    Set dataRange = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol))

    ' Crear el cache para la tabla dinámica
    Set pvtCache = wkBook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=dataRange.Address(ReferenceStyle:=xlR1C1), _
        Version:=xlPivotTableVersion15)

    ' Insertar la tabla dinámica en una hoja nueva
    Set pvtTable = pvtCache.CreatePivotTable( _
        TableDestination:=wkBook.Sheets.Add().Cells(1, 1), _
        TableName:="TablaDinamica")

    ' Configurar la tabla dinámica (esto puedes ajustarlo según tus necesidades)
    With pvtTable
        .PivotFields("NombreDelCampo1").Orientation = xlRowField
        .PivotFields("NombreDelCampo2").Orientation = xlColumnField
        .PivotFields("NombreDelCampo3").Orientation = xlDataField
        .PivotFields("NombreDelCampo3").Function = xlSum ' o xlCount, xlAverage, etc.
    End With
End Sub
  • Preparar los datos: Asegúrate de que tu conjunto de datos tiene encabezados y que está bien estructurado.
  • Abrir el Editor de VBA: Presiona `ALT + F11` para abrir el Editor de VBA en Excel.
  • Insertar un módulo nuevo: Haz clic en `Insertar` > `Módulo` para insertar un módulo nuevo donde escribirás el código VBA.
  • Escribir el código VBA: Utiliza el siguiente ejemplo de código VBA para crear una tabla dinámica a partir de un rango dinámico. Aquí consideraremos que tus datos están en la hoja llamada «Hoja1».
  • Personalizar el código: Cambia `»Hoja1″` al nombre real de la hoja que contiene tus datos y asegura que los campos de las celdas como `»NombreDelCampo1″`, `»NombreDelCampo2″`, y `»NombreDelCampo3″` coincidan con los encabezados reales de tu data.
  • Ejecutar el código: Guarda tu trabajo y presiona `F5` o haz clic en `Ejecutar` > `Ejecutar Sub/UserForm` para ejecutar el código. Esto creará una nueva hoja de cálculo con la tabla dinámica basada en el rango dinámico definido.

Este ejemplo básico muestra cómo crear y personalizar una tabla dinámica. Puedes continuar modificando el código para ajustar más aspectos de la tabla dinámica según tus necesidades específicas.

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