Buscar la ultima fila vacía de una columna filtrada

Tengo un listado con varios encabezados y muchos datos ingresados, este listado tiene filtros y necesito buscar la ultima celda vacía de la columna A cuandlo este filtrada.

1 respuesta

Respuesta

[Hola

¿No queda claro si te refieres a la última fila llena tal cual los datos o te refieres a la última fila llena tal cual queda al filtrar?

Abraham Valencia

Abraham lo que necesit o es ir a la ultima celda vacia de la columna A cuando la columna este filtrada; tene en cuenta que ea un listado con muchos datos y supongo que cuando hay un filtro el proceso demora mucho y yo necesito que sea rapido

Disculpa que suene redundante pero, la "última celda vacía" siempre es la última de una hoja de Excel, osea la de la fila 1'048,576., entonces, como para entenderte:

- ¿Te refieres a la primera celda vacía? La cual siempre es la misma así se usen filtros. Sí los datos llegan hasta la fila 45, por ejemplo, la primera celda vacía estará en la fila 46, se filtre o no.

- Si te refieres a la última fila llena tal cual los datos, siguiendo con el ejemplo de datos hasta la fila 45, pues será la misma celda de esa fila 45.

- Si te refieres a la última fila llena tal cual queda al filtrar, pues ahí así tengamos datos hasta la 45, pues sí podría variar; pues la última con datos que se ve puede ser la 12, la 23, la 28, la 41, etc,

¿Qué es lo que necesitas?

Abraham Valencia

Disculpa tienes razón es primera celda vacía que hay una vez que filtre la columna, es decir suponiemdpo que los datos ingresados no sean continuos y se filtra, buscar la primera celda vacía de la columna A me explico

Prueba así a ver si es lo que necesitas:

msgbox "La primera celda vacía es: " & "A" & range("A1").CurrentRegion.Areas(1).Rows.Count+1

Comentas

Abraham Valencia

No abraham lo que necesito que el cursor se posicione en la celda, no un mxgbox me explico

¿Probaste el resultado? ¿El rango que devuelve es el de la celda que necesitas? Eso es lo primero que se tiene que saber, lo del "Select" es lo más simple pero, no has mencionado si el valor devuelto es el de la celda que tenías en mente.

Abraham Valencia

PD: Incluso hay mas formas por cierto

Sisi así es devuelve la celda que necesito 

Ajá, prueba así:

Dim x As Long
x = Range("A1").CurrentRegion.Areas(1).Rows.Count + 1
Range("A" & x).Select

Saludos]

Abraham Valencia

Hola Abraham esta perfecro el tema es cuando la  columna tiene muchos datos y esta filtrada el cursor se tiene que posicionar en la ultima celda que está visible me explico

Dim UltimaFila As Long
Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
Range("A" & UltimaFila).Select

Saludos]

Abraham Valencia

abraham te vuelvo a molestar esta todo perfecto pero se posciona en la ultima celda con datos, como hago para que baje a la ultima celda sin datos

Sugiero coloques en algún "Drive" un archivo con al menos parte de tus datos e indicar qué filtrar y en ese caso en qué celda en específico necesitas colocar el cursor ya que, si vuelves a ver tus mensajes, verás que son distintas cosas que has solicitado.

Abraham Valencia

Como hago Abraham para  mandarte un archivo de excel para que lo veas

Colócalo en "OneDrive" o "GoogleDrive" o "DropBox" (o cualquiera) usa la opción "compartir" y el enlace que te dará como resultado lo envías por aquí.

Abraham Valencia

Hola abraham acá tienes el ejemplo una vez filtrada lo columna se posiciona en la ultima celda vacía del la columna a

[Hola nuevamente

En tu imagen señalas la celda "A104" y el primer código que envíe hace eso:

Dim x As Long
x = Range("A1").CurrentRegion.Areas(1).Rows.Count + 1
Range("A" & x).Select

Así que no me queda claro por qué después pediste ¿Otra cosa?

Por cierto, a esa se le dice la "primera celda vacía"

Saludos]

Abraham Valencia

Disculpa abraham recién porbe lo primera macaro que me mandaste y cuando filtro la columna se posiciona el la primera celda vacía que encuenta, pero si esa celda esta filtrada se posciona ahí, y lo que yo quiero es que se posicione en la primera celda vacía visible

Que se posicione en la celda A 7474 y no en la A2238 me entendés

En tu imagen todo está filtrado y tú señalas la celda "A104" que es la "primera celda vacía" que es igual a decir "primera celda vacía visible" entonces ¿qué quieres decir ahora? El código enviado siempre hace eso, filtres o no, siempre selecciona la primera celda vacía.

Abraham Valencia

Abraham evidentemente no me se explicar bien, en la ultima foto que te mande, el listado esta filtrado por la columna A al estar filtrado la primera celda que está vacía de la columna A es la 7474 y yo quiero que cuando se ejecute la macro se posicione el cursor ahí y no en la celda 2238.

Pero que sucede cuando la columna A no está filtrada la macro se posiciona correctamente en la celda 2238 porque es la primera celda vacía.

Cuando te dije que envíes el archivo era justamente porque suponía que algo faltaba que comentes; enviaste dos imágenes pero en ninguna se llega a apreciar, tampoco, un detalle que has omitido y era importante saber: En tu columna "A" hay celdas vacías entre las celdas llenas. Lo que he deducido casi por descarte (ya que mencionas la celda A2238 pero tampoco la muestras) y después de bastante tiempo que hubiésemos podido ahorrar viendo tu archivo.

Todo cambia dado tu caso, necesitas algo así:

Dim UltimaFila As Long
With ActiveSheet
    If .AutoFilterMode = True And .FilterMode = True Then
        Range("A" & .AutoFilter.Range.Rows.Count + 4).Select
    Else
        Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row
        Range("A" & UltimaFila + 1).Select
    End If
End With

Otra cosa, ese "+4" que ves ahí debe variar si tu encabezado a su vez varía de ubicación, no olvides eso.

Abraham Valencia

Ahora si mil gracias abraham por tu ayuda te seguiré consultando

Pues de nada y no hay problema, los foros están para eso, para consultar.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas