
Contenido
Para editar un campo calculado en una tabla dinámica usando VBA en Excel, puedes seguir estos pasos. El código VBA te permitirá modificar un campo calculado existente o crear uno nuevo si no existe. Primero, asegúrate de tener el entorno adecuado para ejecutar macros en tu libro de Excel.
Aquí te ofrezco un ejemplo de cómo hacerlo:
- Accede al editor de VBA:
- Presiona `ALT + F11` para abrir el editor de Visual Basic para Aplicaciones.
- Inserta un nuevo módulo:
- En el menú, selecciona `Insertar` > `Módulo` para añadir un nuevo módulo al proyecto.
- Escribe el código VBA:
A continuación te dejo un ejemplo de código que edita un campo calculado existente. Si el campo no existe, lo añade:
Sub EditCalculatedField()
Dim pt As PivotTable
Dim pf As PivotField
Dim ws As Worksheet
Dim fieldName As String
Dim formula As String
' Especificar el nombre de la hoja de trabajo y el nombre de la tabla dinámica
Set ws = ThisWorkbook.Worksheets("NombreDeLaHoja")
Set pt = ws.PivotTables("NombreDeLaTablaDinamica")
' Nombre del campo calculado que deseas editar o crear
fieldName = "NombreDelCampoCalculado"
' Nueva fórmula para el campo calculado
formula = "=Campo1 - Campo2"
' Comprueba si el campo calculado ya existe
On Error Resume Next
Set pf = pt.CalculatedFields(fieldName)
On Error GoTo 0
If Not pf Is Nothing Then
' Si el campo existe, edita la fórmula
pf.StandardFormula = formula
Else
' Si el campo no existe, lo añade
pt.CalculatedFields.Add Name:=fieldName, Formula:=formula
End If
' Refresca la tabla dinámica para aplicar los cambios
pt.RefreshTable
End Sub
Asegúrate de reemplazar `»NombreDeLaHoja»`, `»NombreDeLaTablaDinamica»`, `»NombreDelCampoCalculado»`, `»Campo1″`, y `»Campo2″` con los nombres correspondientes a tu hoja de Excel, tabla dinámica y campos.
- Ejecuta el macro:
- Cierra el editor de VBA y vuelve a Excel.
- Ejecuta el macro presionando `ALT + F8`, selecciona `EditCalculatedField` y luego haz clic en `Ejecutar`.
Este script VBA revisa si el campo calculado mencionado ya está en la tabla dinámica. Si está presente, actualiza su fórmula; si no, crea un nuevo campo calculado con la fórmula proporcionada. Asegúrate de ajustar los nombres de las hojas, tablas, campos y fórmulas según tus necesidades específicas.