Resaltar fila y columna seleccionada en Excel sin modificar color original de las celdas usando VBA y macros y formato condicional

En un tutorial anterior vimos cómo resaltar celda y fila seleccionada en Excel usando VBA, y aunque el tutorial cumple su propósito, hace algo que en algunas ocasiones no adecúa a nuestros formatos, y es que cuando nos cambiamos de fila, la fila anterior se queda con color blanco, es decir le quita el formato original.

En este tutorial hemos mejorado la experiencia para resaltar fila y columna seleccionada sin perder el formato original de las celdas, y esto es porque usamos Formato condicional para resaltar las filas y columnas, y claro, en combinación con VBA.

Ver video Resaltar fila y columna seleccionada en Excel sin modificar color original de las celdas

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Cómo resaltamos filas y columnas sin perder formato condicional

En principio comentaré que usaremos Formato condicional para darle el formato a las celdas, y como sabemos, el formato condicional nos permite formatear celdas dependiendo de los valores de las celdas o si cumplen con el resultado de una fórmula.

Resaltamos la fila y columna seleccionada en Excel sin perder el formato original de las celdas

Figura 1. Resaltamos la fila y columna seleccionada en Excel sin perder el formato original de las celdas

Usando Nombres en Excel, recuperamos el valor de la fila y la columna activa, y por medio de macros que les asignamos los valores de la fila y la columna a los nombres y esos valores son comparados en Formato condicional. Pero veamos cómo desarrollar el ejemplo.

Paso a paso

Nombres en Excel

Para guardar el valor de la fila y columna activa usaremos Nombres para almacenar los valores de manera dinámica, y esos valores los compararemos más adelante en una fórmula de Formato condicional.

  • Abrimos la pestaña Fórmulas y elegimos Asignar nombre.
  • En Nombre escribimos NumeroFila, ámbito Libro y Se refiere a ingresamos =1.
  • Clic en Aceptar.
  • Realizamos los primeros dos primeros pasos, pero ahora el nuevo nombre será NumeroColumna.

Nota: El valor de 1 que le ponemos a los nombres es temporal, ya que este valor lo cambiaremos dinámicamente con macros.

En NumeroFila guardaremos el número de la fila activa.

Figura 2. En NumeroFila guardaremos el número de la fila activa.

Asignar dinámicamente el valor de la fila y la columna activa con VBA

Haremos uso de un evento en VBA para cambiar dinámicamente la fila y columna activa, y ese evento es SelectionChange, que nos permitirá ejecutar sentencia de VBA al momento de movernos entre las celdas de un archivo.

Cada que nos movemos de celdas, hacia cualquier dirección, le asignaremos al nombre NumeroFila el valor de la fila activa y al nombre NumeroColumna el valor de la columna activa.

  • Damos clic derecho en la etiqueta de la hoja y seleccionamos Ver código.
  • Se nos abrirá el IDE de VBA.
  • Damos clic en el Combobox que tiene el valor de (General).
  • Se insertará el evento Worksheet_SelectionChange.

Usaremos el evento Worksheet_SelectionChange para detectar cada cambio de celda.

Figura 3. Usaremos el evento Worksheet_SelectionChange para detectar cada cambio de celda.

Ahora, con el evento ya insertado escribiremos las sentencias VBA que guardarán en los nombres anteriormente creados los valores de la fila y columna activa.

Option Explicit
'
'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

ActiveWorkbook.Names("NumeroFila").RefersTo = ActiveCell.Row
ActiveWorkbook.Names("NumeroColumna").RefersTo = ActiveCell.Column

End Sub

Formato condicional para resaltar la fila y columna activa

Como les dije al principio si usamos Formato condicional, podremos darle un formato a las celdas sin modificar el formato original, sino que vaya cambiando dinámicamente.

  • En nuestro ejemplo seleccionamos el rango [A8:I26].
  • Nos dirigimos a la pestaña Inicio > Formato condicional > Nueva regla.
  • Seleccionamos la opción Utilice una fórmula que determine las celdas para aplicar formato.
  • En la sección de la fórmula escribimos =FILA(A8)=NumeroFila.
  • Ahora damos en el botón Formato y elegimos un formato que será el usado para resaltar la fila.
  • Clic en Aceptar.
  • Repetimos los pasos y la fórmula para resaltar la columna será =COLUMNA(A8)=NumeroColumna.

Compararemos el valor de la fila activa con el almacenado el nombre NumeroFila

Figura 4. Compararemos el valor de la fila activa con el almacenado el nombre NumeroFila.

Si usas el truco anterior se deshabilita la opción de deshacer cambios, el [Control] + [Z]. En el video tutorial y en el archivo de ejemplo vemos una segunda manera en la que también usamos Formato condicional y macros, sin embargo el [Control] + [Z] no se deshabilita.

Descarga el archivo de ejemplo

Descargar el ejemplo Resaltar fila y columna en Excel sin perder el formato original – EXCELeINFO.zip

Si te gustó este tutorial por favor anótate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...