VBA Resaltar Celda
In this Article
Este tutorial demostrará cómo utilizar VBA para resaltar una celda o un rango de celdas.
Con VBA podemos utilizar la función de Excel Formato condicional para resaltar celdas o podemos utilizar otros métodos con un efecto similar.
Resaltar una Celda
Para resaltar una celda en VBA, podemos utilizar el sencillo procedimiento que se muestra a continuación.
Sub ResaltarCelda()
ActiveCell.Interior.Color = vbRed
End Sub
Resaltar un Rango de Celdas
De manera similar, podemos seleccionar un Rango de Celdas, y resaltar todas las celdas en el Rango.
Sub ResaltarRango()
Range("A1:A10").Select
Selection.Interior.Color = vbRed
End Sub
Resaltar Celdas Basadas en el Valor de la Celda
Para añadir una condición para resaltar una celda, podemos utilizar una sentencia IF para resaltar la celda si el valor de la celda está por encima de un determinado valor, en este caso mayor que 10.
Sub ResaltarCeldaIf()
If ActiveCell.Value > 10 Then
ActiveCell.Interior.Color = vbRed
End If
End Sub
Resaltar un Rango de Celdas Basado en el Valor de la Celda
Para comprobar los valores de un Rango de Celdas, necesitaríamos hacer un bucle a través de cada celda, establecer su valor y luego resaltar la celda en consecuencia. En el ejemplo de abajo, primero estableceremos que el valor mantenido en el rango es un número, y luego probaremos para ver si ese número es mayor que 10.
Sub ResaltarRangodeCeldasIf()
Dim rng As Range
For Each rng In Range("A1:A10")
If IsNumeric(rng.Value) Then
If rng.Value > 10 Then
rng.Interior.Color = vbRed
End If
End If
Next rng
End Sub
Resaltar una Celda con Formato Condicional
También podemos utilizar VBA para aplicar Formato Condicional a una celda para resaltarla. En el ejemplo siguiente, el Formato Condicional se aplicará a cada celda del rango. Como en el ejemplo anterior, primero comprobamos que la celda tiene un valor numérico y luego aplicamos el Formato Condicional.
Sub EstablecerFormatoCondicional()
Dim rng As Range
For Each rng In Range("A1:A10")
If IsNumeric(rng.Value) Then
rng.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:="=10"
rng.FormatConditions(1).Interior.Color = vbRed
rng.FormatConditions(1).StopIfTrue = False
End If
Next rng
End Sub
Resaltar una Celda Cuando Cambia la Selección
Podemos hacer que el resaltado de una celda sea dinámico cuando el puntero de la celda se mueve en la hoja de trabajo actual, utilizando el evento Worksheet_Change. En el ejemplo siguiente, se eliminará todo el resaltado de la hoja (excepto los realizados por el formato condicional), y la CeldaActiva se resaltará en rojo (ColorIndex = 3).
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Cells.Interior.ColorIndex = xlColorIndexNone
Target.Interior.ColorIndex = 3
End Sub