Contenido
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.