Contenido
Cambiar dinámicamente el diseño de una tabla dinámica utilizando VBA en Excel te permite personalizar y ajustar las tablas según tus necesidades específicas. Aquí te dejo un ejemplo de cómo puedes lograrlo:
Supongamos que deseas:
- Cambiar los campos en las filas, columnas o valores.
- Filtrar determinados elementos.
- Cambiar el diseño (por ejemplo, de un diseño tabular a uno compacto).
Aquí tienes un ejemplo de código VBA que realiza algunos de estos cambios:
Sub CambiarDisenioTablaDinamica()
Dim pt As PivotTable
Dim ws As Worksheet
' Establecer la hoja de trabajo y la tabla dinámica
Set ws = ThisWorkbook.Sheets("Hoja1") ' Cambia "Hoja1" al nombre de tu hoja
Set pt = ws.PivotTables("TablaDinamica1") ' Cambia "TablaDinamica1" al nombre de tu tabla dinámica
' Limpie la tabla dinámica actual
pt.PivotFields("CampoExistente1").Orientation = xlHidden
pt.PivotFields("CampoExistente2").Orientation = xlHidden
' Sigue quitando más campos según sea necesario
' Agregar campos a filas
With pt.PivotFields("CampoFila")
.Orientation = xlRowField
.Position = 1
End With
' Agregar campos a columnas
With pt.PivotFields("CampoColumna")
.Orientation = xlColumnField
.Position = 1
End With
' Agregar campos a valores
With pt.PivotFields("CampoValor")
.Orientation = xlDataField
.Function = xlSum ' O puedes usar xlCount, xlAverage, xlMax, etc.
.NumberFormat = "#,##0" ' Ajustar el formato numérico
End With
' Aplicar un filtro en un campo, si es necesario
With pt.PivotFields("CampoFiltro")
.ClearAllFilters
.PivotItems("ElementoFiltro").Visible = True
End With
' Cambiar el diseño de la tabla dinámica a Tabular
pt.RowAxisLayout xlTabularRow
' Actualizar la tabla dinámica
pt.RefreshTable
End Sub
Notas importantes:
- Cambia `»Hoja1″`, `»TablaDinamica1″`, `»CampoExistente1″`, `»CampoFila»`, `»CampoColumna»`, `»CampoValor»`, `»CampoFiltro»`, y `»ElementoFiltro»` por los nombres apropiados que correspondan a tu situación.
- Este código establece el diseño en formato tabular. Puedes cambiar `xlTabularRow` a `xlCompactRow` o `xlOutlineRow` para otros formatos de diseño.
- Asegúrate de manejar errores para situaciones en las que el campo o el elemento que estás tratando de modificar no exista.
Este es un punto de partida común y puedes personalizar el código para que se ajuste a tus necesidades específicas.