Obtener la última fila con datos en vba

Hola Freaks! Una de las necesidades recurrentes que tenemos cuando empezamos a usar las macros y a automatizar ficheros excel, es saber cual es la última fila que tiene datos.
De esta manera te aseguras no tener que modificar los rangos a mano cada vez que añadas nuevos registros.

Como encontrar la ultima fila con valores en vba excel

Existe más de un método para obtener el último registro con datos en vba. En este post os voy a enseñar dos de ellos.

Obtener el último registro con datos en vba con la propiedad End

La propiedad End representa la celda final que contiene el rango del cuál partimos.
Equivale a presionar FIN+FLECHA arriba, FIN+FLECHA abajo, FIN+FLECHA izquierda o FIN+FLECHA derecha.

Comenzaremos usando Rows.Count que nos contará todas las filas de la hoja de cálculo:

ActiveSheet.Cells(Rows.Count, "A")

Le añadiremos la propiedad End que nos situará en la última fila con datos de la columna y nos devolverá su valor. Como he dicho más arriba simula FIN+FLECHA arriba.

ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row

Le añadiremos la propiedad row, para que nos devuelva la fila.

En este caso hemos obtenido la última fila únicamente con la columna A. Ten en cuenta cuando vayas a realizar esta macro, que la columna que vas a usar tiene valores hasta el final.

Obtener la última fila con datos en vba con UsedRange

Antes de mostrarte el código necesario para obtener la ultima fila con la propiedad usedrange, vamos

La propiedad UsedRange representa el rango dentro de una pestaña especificada. Por lo que si queremos seleccionar el rango de datos de una pestaña concreta lo conseguiremos con la siguiente sentencia:

ActiveSheet.UsedRange.Select

Como ya tenemos el rango de datos seleccionado, vamos a usar el método SpecialCells, con el cuál obtendremos las celdas que cumplan una determinada condición.

Como queremos obtener la última celda con datos usaremos la constante xlCellTypeLastCell.

ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell)

De esta manera, la macro nos devolverá el valor de la última celda con datos, pero eso no es lo que estamos buscando. Queremos el registro de esa celda para de esta manera saber a partir de que fila podemos seguir escribiendo.

Por lo que, para obtener la última fila con datos usaremos la siguiente sentencia.

ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

obtener-ultima-fila-vba

Esto es todo!! Espero que hayas aprendido un poquito más.

Si tienes algunda duda, entra en el foro y deja tu pregunta

 

<< Volver a post sobre Macros

Autor entrada: Javi de Excelfreak

Deja un comentario