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.

MÁS SOBRE

Gerencie.com en su correo.

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

Siéntase libre de opinar

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. Jimmy dice:

    Buenas tardes.
    Felicitaciones Oscar el problema que tengo es cuando quiero introducir un valor en una celda(Ingrese el numero de estudiantes) quiero que directamente aparezca las filas del valor introducido.
    Tambien quisiera pedirte otro favor tengo una pestaña "lista" donde realizo el ordenamiento segun la columna "apellidos y nombres" y me creado un boton "ordenar" me funciona bien pero cuando protega la pestaña lista me sale un mensaje: No se puede ejecutar este comando en una hoja protegida. error 1004.
    Esos dos favores estimado Oscar espero tu respuesta lo mas antres posible porque estoy realizando un registro para estudiantes.

En Gerencie.com está permitido opinar, criticar, discutir, controvertir, disentir, etc. Lo que no está permitido es insultar o escribir palabras ofensivas o soeces. Si lo hace, su comentario será rechazado por el sistema o será eliminado por el administrador. Por último, trate de no escribir en mayúscula sostenida, resulta muy difícil leerle.