Resaltar filas mientras se escribe usando Formato condicional, VBA y macros en Excel – PARTE 1

Resaltar filas mientras se escribe usando Formato condicional, VBA y macros

En nuestro proyecto anterior llamado Filtro rápido en Excel, vimos cómo filtrar filas de un rango al momento de escribir valores en un Cuadro de texto (TextBox), es decir, filtrar de manera dinámica.

Dignora, una comprometida suscriptora de nuestro canal me hizo una pregunta muy interesante. La pregunta fue:

Gracias Profesor. He aplicado este ejemplo y es fabuloso. En otra necesidad algo parecido: Si al colocar un texto en ese textbox se pinten las celdas que contienen esos valores. Tiene algo parecido que me pueda recomendar???. Agradezco su dedicación y excelentes contenidos

La idea me gustó y decidí hacer este tutorial y grabar un video sobre el tema. Al principio me pareció un tema sencillo, pero al ir grabando el video me di cuenta que se le podía sacar mucho provecho al tema y decidí grabar el video en dos partes.

Resaltar filas usando Formato condicional

Antes de meternos en macros, te diré cómo formatear filas completas de un rango siempre y cuando cumplan con un criterio: usaremos la función ENCONTRAR para validar si una cadena de texto se encuentra dentro de las celdas de la columna Cargo. Seguimos los siguientes pasos para aplicar el Formato condicional en el rango:

  • Seleccionamos el rango.
  • Nos vamos a la pestaña Inicio > Formato condicional > Nueva regla.
  • Elegimos la opción Utilice una fórmula que determine las celdas para aplicar formato.
  • Ingresamos la siguiente fórmula.

=ENCONTRAR(MAYUSC(“C”),MAYUSC($D10))

Ver Video Resaltar filas en Excel mientras se escribe

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

PARTE 2

Si el texto se encuentra en algunas de las celdas de la columna Cargo, entonces se resaltarán las filas completas.

Se resaltan las filas que en la columna Cargo contengan la letra "c".

Figura 1. Se resaltan las filas que en la columna Cargo contengan la letra “c”.

Resaltar filas mientras se escribe en un TextBox usando VBA y macros

Usando formato condicional es verdaderamente útil para colorear el fondo de las filas. Ahora lo que haremos es ingresar un Cuadro de texto (TextBox) en la hoja que nos servirá para aplicar formato condicional cada que se escribe texto en el TextBox, haciéndolo de manera dinámica, usando VBA y macros.

Usaremos un Cuadro de texto para ingresar texto y resaltar filas con formato condicional.

Figura 2. Usaremos un Cuadro de texto para ingresar texto y resaltar filas con formato condicional.

Usaremos el evento Change del TextBox para que se ejecute una macro que aplica Formato condicional en el rango cada vez que se detecte un cambio de texto. Si el Cuadro de texto queda vacío, se eliminan todas las reglas de Formato condicional.

  • Nos vamos a la pestaña Programador > Modo diseño.
  • Damos doble clic en el TextBox y se crea el evento TextBox1_Change.
  • Ingresamos la macro que aplicará una regla de Formato condicional al rango.

Se resaltan las filas completas al momento de ingresar texto en el TextBox.

Figura 3. Se resaltan las filas completas al momento de ingresar texto en el TextBox.

Código VBA de la macro

El siguiente código VBA se usará en el evento TextBox1_Change y se ejecutará cada que cambie el contenido del TextBox.

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo
'
Option Explicit

Private Sub TextBox1_Change()

Dim Valor As String
Dim strFormula As String
Dim Rango1 As Range
Dim Rango2 As Range

Valor = Hoja1.TextBox1.Value
strFormula = "=ENCONTRAR(MAYUSC(""" & UCase(Valor) & """),MAYUSC($D10))"

Set Rango1 = ThisWorkbook.Sheets("Hoja1").Range("A9").CurrentRegion
Set Rango2 = Rango1.Offset(1, 0).Resize(Rango1.Rows.Count - 1, Rango1.Columns.Count)

If Hoja1.TextBox1.Value = "" Then Cells.FormatConditions.Delete: Exit Sub

    Cells.FormatConditions.Delete
    Rango2.FormatConditions.Add Type:=xlExpression, Formula1:=strFormula

    With Rango2.FormatConditions(1).Interior
        .ColorIndex = 35
    End With

End Sub

Descarga el archivo de ejemplo

Descargar el ejemplo Resaltar filas mientras se escribe usando VBA y formato condicional – EXCELeINFO.zip

Si te gustó este tutorial por favor regístrate 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...