Visual Basic para Aplicaciones - Encontrar ultima fila

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 13 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Encontrar ultima fila

Publicado por leonardo (1 intervención) el 14/04/2018 17:56:17
Hola buenas tardes... Estoy aprendiendo vba y me he encontrado la siguiente instruccion para dar con la ultima fila de un determinado rango lastRow = Cells(Rows.Count, 1).End(xlUp).Row.
Mi confusion esta en el argumento de End(xlUp), ya que segun entiendo esto representa la celda al final de la region que estoy manejando y con el argumento xlUp lo esta enviando al principio. La verdad no entendo la logica de esa sentencia. Agradezco la ayuda para poder comprender. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Encontrar ultima fila

Publicado por JuanC (564 intervenciones) el 15/04/2018 17:17:38
la clave está en Cells(Rows.Count, 1), empieza desde la última fila de la hoja, por eso busca el final hacia arriba (xlUp)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Encontrar ultima fila

Publicado por Antoni Masana (409 intervenciones) el 16/04/2018 08:49:43
Una respuesta más ampliada:

http://www.excel-avanzado.com/2791/identificar-la-ultima-fila-en-uso-con-vba.html

Identificar la última fila en uso con VBA

Usualmente las bases de datos en Excel tienen mucha información; por eso, perderíamos tiempo buscando el último dato con la barra de desplazamiento.

Sin embargo, esto se puede solucionar, haciendo uso de las macros.

¿Qué código podemos usar para buscar la última fila?

1
2
3
4
5
Sub BuscarUltimaFila()
    Dim ult As Integer
    ult = Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox ult
End Sub

Ahora entendamos el código:

Cells(Rows.Count,1) = Al usar Rows.Count estamos contando todas las filas disponibles en excel cuyo valor seria 1048576. Como lo usamos en un Cells, estaremos seleccionando la fila 1048576. El “1” indica la columna en la cuál se esta trabajando (“A”) .

End(xlUp) = Estamos indicando que desde la fila indicada (1048576), “suba” hasta que encuentre un valor.

Row = Indicamos que grabe el número de la fila ocupada encontrada.

MsgBox ult = Mostramos ese valor en un cuadro de texto.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Encontrar ultima fila

Publicado por José Humberto (6 intervenciones) el 23/04/2018 08:39:11
La lógica de End(xlup), es la siguiente: al igual que los demás parámetros de End, xlup, Xldown, xlLeft, y xlright, dependen de la posición de donde se apliquen; ya que equivalen a presionar la tecla control + cualquiera de las flechas direccionales.

Por eso si la columna A esta vacía y aplicas el comando (cells.rows.count,1).end(xlup).row, esto te llevará a la primera fila, pero si le dieras cualquier valor a cualquier celda de la columna A, este comando, te daría la fila de la celda donde pusiste el valor.

Espero haber sido de ayuda, saludos amigo, sigue practicando vas por buen camino!

Ejemplo-xlup
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Norberto
Val: 115
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Encontrar ultima fila

Publicado por Norberto (34 intervenciones) el 23/04/2018 12:07:41
Hola.

A mí, personalmente no me gusta este sistema para identificar la última fila usada en una hoja.

Captura

En la imagen vemos que la última fila usada es la 4 pero la expresión que mencionas devolvería 1 ya que para la columna 1, que es la que se examina, esa es la última fila usada.

Yo prefiero WorkSheet.UsedRange.

Un saludo,

Norberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Encontrar ultima fila

Publicado por JuanC (564 intervenciones) el 23/04/2018 12:20:00
comparto con Norberto, además cuando se borra el valor de la última celda de la columna el método End(xl) suele fallar, por eso
es recomendable usar UsedRange o al menos verificar el contenido de la celda devuelta por End, así como sus adyacentes-...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar