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
[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
¿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
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
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
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
- Compartir respuesta