Formato condición para resaltar primera fila vacía

Como puedo aplicar un formato condicional que me resalte la primera fila que se encuentre vacía, para así saber donde seguir escribiendo datos

Respuesta
4

- Entra a formato condicional.

- Selecciona la opción "Utilice una fórmula que determine las celdas para aplicar formato".

- En el campo: "Dar formato a los valores donde esta fórmula sea verdadera:"

- Pon la siguiente fórmula:

=FILA(A1)=CONTAR.SI($A:$A,"<>")+1

La fórmula revisa la última fila con datos de la columna "A". Si quieres otra columna como referencia, entonces cambia las A por la letra de la columna que quieras. Por ejemplo, si quieres la columna D, entonces:

=FILA(D1)=CONTAR.SI($D:$D,"<>")+1

- Presiona Aceptar

- En el campo "Se aplica a"

Pon lo siguiente:

=$1:$1048576

- Presiona Aceptar

Son cinco columnas donde se pega información de lunes a viernes donde

Columna B Lunes

colunma C Martes

y asi hasta el viernes el tema de elegir una solo columna es que si es feriado no va tener ningun registro por eso necesito que evalue la fila completa o que tome esas cinco columnas como referencia

En la fórmula puse columna Dpero no hay registro en este caso deberioa tomar la columna C que es la que tiene el ultimo registro

Si tienes definidas las columnas B a la F.

Entonces utiliza la siguiente fórmula:

=FILA(A1)=MAX(CONTAR.SI($B:$B,"<>"),CONTAR.SI($C:$C,"<>"),CONTAR.SI($D:$D,"<>"),CONTAR.SI($E:$E,"<>"),CONTAR.SI($F:$F,"<>"))+1

¡Gracias! Excelente como siempre

Esta es una fórmula más corta, pero es MATRICIAL, por eso solamente puse de hasta la fila 10,000. No puse más filas, porque tu hoja se hará lenta.

=FILA(A1)=MAX(($B$1:$F$10000<>"")*FILA($B$1:$B$10000))+1

Si vas a utilizar menos de 10,000 filas, entonces puedes cambiar 10,000 por mil filas, por ejemplo:

=FILA(A1)=MAX(($B$1:$F$1000<>"")*FILA($B$1:$B$1000))+1

En la fórmula puedes cambiar el rango de columnas, por ejemplo si quieres evaluar de la B a la M:

=FILA(A1)=MAX(($B$1:$M$1000<>"")*FILA($B$1:$B$1000))+1

Es más simple modificar esta fórmula si quieres agregar más columnas.

La petición es seleccionar toda la fila. Pero como el usuario ya puso una pantalla con la información de su hoja, entonces para seleccionar solamente la fila de las columnas B a la F, simplemente cambia el valor en se aplica:

=$B:$F

Esto no regresa la "primera fila libre":

'encontrar primera fila libre en la hoja activa y el fin de rango
x = ActiveSheet.Range("B1").CurrentRegion.Rows.Count + 1
y = ActiveSheet.UsedRange.Rows.Count

Si tienes datos de esta manera:

Si ejecutas la macro, x regresa 2, debería regresar 7

En y regresa 3, debería regresar 6.

En estos casos cuando se trata de encontrar la última fila con datos, considerando varias columnas y que pueden existir celdas vacías, lo correcto para encontrar la última fila con datos:

x = ActiveSheet.Range("B:F").Find("*", , xlValues, , xlByRows, xlPrevious).Row + 1
y = ActiveSheet.Range("B:F").Find("*", , xlValues, , xlByRows, xlPrevious).Row

De esta manera x = 7, y = 6

https://ecp.yusercontent.com/mail?url=https:%2F%2Fs.yimg.com%2Fnq%2Fyemoji_assets%2Flatest%2Fyemoji_assets%2F1f609.png&t=1654246237&ymreqid=18f73179-9353-8498-1c3c-8a000501ed00&sig=3H0YgV.DXaaM0hE5_tBcpA--~D

1 respuesta más de otro experto

Respuesta
3

Como solicitaste una solución con formato condicional ... así te resolvieron la consulta.

Pero, no puedo dejar de comentar que es una solución que utiliza innecesariamente recursos, tanto en asignar un formato a tooooooda la hoja (hasta celda XFD1048576), como además, colorear la fila entera.

Y para los usuarios que pudieran tener espacios vacíos en alguna columna, tampoco es una solución válida la del formato condicional con función CONTAR. SI. Basta probar de quitar algún valor en col D (por ej la celda marcada en D6) y la cuenta ya no dará los mismos resultados, coloreando una fila errónea.

Por eso, para los usuarios que quieran tener algo similar, les propongo una macro con un atajo de teclado. Sin fórmulas, sin formatos condicionales y solo con color en el rango ocupado por la tabla. Tanto en un rango como en una TAbla.

Entrar al Editor, insertar un módulo y allí copiar el siguiente código. Ajustar los rangos, que en los ejemplos va desde B:F y a partir de la fila 4.

Sub primeraFilaLibre()
'x Elsamatilde
'atajo de teclado:  CTRL f
'encontrar primera fila libre en la hoja activa y el fin de rango
x = ActiveSheet.Range("B1").CurrentRegion.Rows.Count + 1
y = ActiveSheet.UsedRange.Rows.Count
'quitar color a celdas anteriores
Range("B4:F" & y).Interior.Color = xlNone
'colorear el rango de las 5 columnas
Range("B" & x & ":F" & x).Interior.ColorIndex = 6
'opcional: decidir en qué col debe posicionarse
Range("B" & x).Select
End Sub

Luego, desde la hoja, seleccionar el menú Programador/Desarrollador, Macros.

Seleccionarla y desde el botón Opciones, colocar una letra (en mi ejemplo utilicé f). Se recomienda NO utilizar letras que estén asociadas a otros procesos de Excel o Windows (A, C, V, etc)

Sdos.

Elsa

PD) Próximamente el libro de ejemplo estará disponible en sección Descargas de mi sitio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas