Contenido
Para cambiar la agregación de un campo de datos en una tabla dinámica usando VBA, necesitas acceder al objeto `PivotField` correspondiente y modificar su propiedad `Function`. Aquí te doy un ejemplo paso a paso de cómo hacerlo:
Supongamos que tienes una tabla dinámica con un campo de datos llamado «Ventas» y deseas cambiar la agregación de dicho campo a una suma.
Sub CambiarAgregacionCampoDatos()
Dim pt As PivotTable
Dim pf As PivotField
' Referencia a la primera tabla dinámica en la primera hoja (ajusta según sea necesario)
Set pt = ThisWorkbook.Worksheets("Hoja1").PivotTables(1)
' Referencia al campo de datos que deseas modificar
Set pf = pt.PivotFields("Ventas")
' Cambia la función de agregación a Suma
pf.Function = xlSum
' Otras funciones de agregación comunes:
' pf.Function = xlCount ' Conteo
' pf.Function = xlAverage ' Promedio
' pf.Function = xlMax ' Máximo
' pf.Function = xlMin ' Mínimo
' Actualiza la tabla dinámica para aplicar los cambios
pt.RefreshTable
MsgBox "La agregación ha sido cambiada a Suma."
End Sub
- Abre el Editor de VBA: Ve a Excel y presiona `ALT + F11` para abrir el Editor de Visual Basic.
- Inserta un Módulo: Haz clic derecho en el proyecto de VBA correspondiente a tu archivo de Excel, selecciona «Insertar» y luego «Módulo» para agregar uno nuevo.
- Escribe el Código: Introduce el siguiente código en el módulo:
Asegúrate de ajustar `»Hoja1″` y `»Ventas»` con el nombre real de la hoja y del campo que estás utilizando en tu tabla dinámica.
- Ejecuta el Código: Con el cursor dentro del código que acabas de escribir, presiona `F5` para ejecutar el script. Esto cambiará la función de agregación a «Suma».
Este código simplemente accede al campo de datos especificado en la tabla dinámica y cambia la función de agregación al tipo deseado. Puedes cambiar el tipo de agregación usando otras constantes de función de Excel como `xlCount` para conteo, `xlAverage` para promedio, etc. Ajusta el código según tus necesidades específicas.