30 Macros Útiles y Sencillas: Resaltar Celda Activa Parte 3

Hasta este punto ya sabemos cómo resaltar la celda activa aplicando color a toda la fila y toda la columna de dicha celda, sin embargo lo más probable es que en nuestros trabajos solo sea necesario aplicar el color a un rango donde tenemos la información, es decir no a toda la columna y fila. Vamos a ver ahora como resaltar la celda activa pero aplicando color a un rango especifico. Tenemos la siguiente base de datos:

Observemos que el rango donde están los datos en C11:K30, es decir que si seleccionamos una celda que este por fuera de este rango no debe aplicarse color ninguno; así que solo vamos a resaltar la fila de la celda que seleccionemos del rango C11:K30

Ingresamos al Editor de Visual Basic y para ello desde la hoja sobre la que queremos el resultado utilizaremos la combinación de teclas Alt + F1:

Nos ubicamos en la ventana del Explorador de Proyectos que tenemos en el panel izquierdo de la ventana del Editor de Visual basic y damos doble clic a la Hoja 1 (BD) que es donde queremos aplicar la macro y pegamos el siguiente código en el espacio de edición de código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next

R = ActiveCell.Row

C = ActiveCell.Column

Range("C11:K30").Interior.ColorIndex = 0

If R < 11 Or R > 30 Or C < 3 Or C > 11 Then

Exit Sub

Else

Range("C" & R & ":K" & R).Interior.ColorIndex = 42

End If

End Sub

Este código es un poco mas extenso que los anteriores, sin embargo también es sencillo. Primero se utilizan las variables R y C para almacenar en ellas temporalmente la fila y la columna de la celda activa respectivamente.

R = ActiveCell.Row

C = ActiveCell.Column

Luego, antes de aplicar un color, es necesario dejar sin color el rango C11:K30

Range("C11:K30").Interior.ColorIndex = 0

Luego se aplica un condicional If donde se valida si el valor de las variables R y C, es decir, si la fila y la columna de la celda activa no hacen parte del rango que deseamos colorear y si ese es el caso, es decir, si no seleccionamos una celda del rango de datos entonces no hay que hacer nada:

If R < 11 Or R > 30 Or C < 3 Or C > 11 Then

Exit Sub

Observemos que la condición pregunta si la variable R es menor a 11 o mayor a 30 y ésta validación es de esta manera porque el rango de datos esta entre la fila 11 y la fila 30. Lo mismo sucede en la validación de las columnas donde se pregunta si la variable C (que tiene el número de la columna de la celda activa), es menor a 3 o mayor a 11 que corresponde a las columnas C y K del rango de datos

Si esta validación no es VERDADERO, es decir, si seleccionamos una celda del rango que necesitamos colorear, entonces a la fila R de la celda activa desde la columna C hasta la columna K aplicamos el color 42:

Else

Range("C" & R & ":K" & R).Interior.ColorIndex = 42

 

Vemos el resultado:

Y al seleccionar otra celda:

Recordemos que si desean cambiar el color de la celda con el que estamos resaltando la fila, solo debemos cambiar el valor 42 en el código.

Target.EntireRow.Interior.ColorIndex = 42

Descargar archivo de trabajo.

Contenido relacionado:
Compartirlo
Gerencie.com en su correo.

Suscríbase y nosotros colocaremos en su bandeja de entrada la mejor información que generamos diariamente.


Déjenos su opinión

2 Opiniones
  1. Cristhian Castillo dice:

    Hola, me podrian ayudar, tengo una planilla llena con formulas los datos de ingreso te llevan a los siguientes calculos y estos a los siguientes calculos, pero ahora lo que debo es que se itere de forma automatica.

    Me podrian guiar, mi mail es ingambiental.ccastillo@gmail.com

  2. JOSE AGUERO dice:

    Hola. Me gustaria que solo resate un Rango de celdas determinado. En la actualidad estoy trabajando en eso para un trabajo, pero mi poca experiencia, no me ayuda… dependo mucho de los expertos, pero a la fecha no lo consigo.
    Solo quiero resaltar la celda activa, pero que al mover el raton a otra, la anterior se desactive o no, pues solo depende si esta determinado en el rango establecido.
    En mi archivo solo quiero que eso ocurra en un rango pequeño… Auxilio. por favor.

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc., pero debe hacerlo con respeto, sin insultar y sin ofender a otros.

Información legal aplicable para Colombia.