¿Cómo editar un campo calculado en una tabla dinámica con VBA?

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.

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