VBA Resaltar Celda

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on agosto 15, 2022

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
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples