Contenido
Para aplicar formato condicional a un campo calculado en una tabla dinámica utilizando VBA (Visual Basic for Applications) en Excel, debes seguir varios pasos. Aquí hay una guía detallada para lograrlo:
Sub AplicarFormatoCondicionalCampoCalculado()
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim ws As Worksheet
Dim rangoTablaDinamica As Range
Dim celda As Range
' Cambia "Hoja1" por el nombre de la hoja que contiene tu tabla dinámica
Set ws = ThisWorkbook.Sheets("Hoja1")
' Cambia "TablaDinámica1" por el nombre de tu tabla dinámica
Set pt = ws.PivotTables("TablaDinamica1")
' Cambia "NombreDelCampoCalculado" por el nombre de tu campo calculado
Set pf = pt.PivotFields("NombreDelCampoCalculado")
' Obtén el rango de la tabla dinámica
Set rangoTablaDinamica = pt.DataBodyRange
' Comprueba si el rango no está vacío
If Not rangoTablaDinamica Is Nothing Then
' Recorre cada celda en el rango de la tabla dinámica
For Each celda In rangoTablaDinamica
' Verifica si la celda pertenece al campo calculado
If celda.PivotField.Name = pf.Name Then
' Aplica el formato condicional según la condición requerida
' Ejemplo: si el valor es mayor que 100, aplica un color de fondo amarillo
If celda.Value > 100 Then
celda.Interior.Color = RGB(255, 255, 0) ' Amarillo
Else
celda.Interior.ColorIndex = xlNone ' Sin color
End If
End If
Next celda
End If
End Sub
- Acceder al Editor de VBA:
- Abre Excel.
- Presiona `ALT + F11` para abrir el Editor de VBA.
- Insertar un Módulo Nuevo:
- En el Editor de VBA, haz clic en `Insertar` > `Módulo`. Esto creará un nuevo módulo donde puedes escribir tu código VBA.
- Escribir el Código VBA:
- Usa el siguiente código como referencia para aplicar formato condicional. Este código asume que ya tienes una tabla dinámica creada en una hoja de tu libro de Excel.
- Personalizar el Código:
- Asegúrate de cambiar `»Hoja1″`, `»TablaDinamica1″`, y `»NombreDelCampoCalculado»` a los nombres correctos que corresponden a tu hoja, tabla dinámica y campo calculado en tu libro de Excel.
- Modifica la condición y el color en la sección de `If celda.Value > 100 Then` según tus necesidades.
- Ejecutar el Código:
- Dentro del Editor de VBA, coloca el cursor dentro del cuerpo del subprocedimiento `AplicarFormatoCondicionalCampoCalculado`.
- Presiona `F5` o haz clic en `Ejecutar` > `Ejecutar Sub/UserForm` para ejecutar el macro.
Este código revisará cada celda en la parte de los datos de tu tabla dinámica y aplicará el formato condicional solo a las celdas que pertenecen al campo calculado especificado. Puedes modificar el tipo de formato condicional y la lógica de la condición según sea necesario para tu aplicación específica.