Excel Avanzado

Un blog para compartir los tips de Excel Avanzado que todos necesitamos!

Excel Avanzado

Identificar la última fila en uso con VBA

| 7 Comments

¿En qué nos ayudaría identificar la última fila en uso?

Usualmente las bases de datos en Excel tienen mucha información; por eso,  perderiamos 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?

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.

Seleccionar esa última fila

Ahora, si queremos seleccionar esa celda podemos agregar el siguiente código:

Sub BuscarUltimaFila()

Dim n As Long
countult = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox countult
Cells(Rows.Count, 1).End(xlUp).Select

End Sub

Como podemos observar, en vez de .Row , le ponemos .Select

Última fila libre

Alternativamente, si queremos buscar la última fila libre, haremos uso del Offset:

Sub BuscarUltimaFila()

Dim n As Long
countult = Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Row
MsgBox countult
Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Select

End Sub

Con Offset(1,0) , al encontrar la última fila en uso, saltamos 1 fila más la cual sería la última fila libre.

Descargar ejemplos de identificación de última fila

——————

Elaborado por: Daniel Eduardo Espinoza Rodriguez

7 Comments

  1. Excelente aporte.
    Ejemplo de mucha utilidad en programación. Seguro lo voy a utilizar constantemente.

  2. Ante todo gracias por este maravilloso ejemplo.

    Esta rutina me interesa:

    Sub BuscarUltimaFila()
    Dim n As Long
    countult = Cells(Rows.Count, 1).End(xlUp).Row
    MsgBox countult
    Cells(Rows.Count, 1).End(xlUp).Select
    End Sub

    Pero tengo una duda. Supongamos que la ultima fila es la 20 y quiero hacer una selección de B20:M20 que tendria que incluir en el código??

    Gracias.

    • Perdón, me respondo a mi mismo…

      Sub BuscarUltimaFila()

      Dim n As Long
      countult = Cells(Rows.Count, 2).End(xlUp).Row
      Range(“B” & countult & “:M” & countult).Select

      End Sub

  3. muy util para trabajar con base de datos se podria agregar codigo para ordenar la lista

  4. Hola, estuve viendo estos codigo, parece ser muy util. pero tengo una gran duda: el codigo va en un formulario form de Vb 6.0? digo porque no se como hacer que ese codigo responda si primero no se establece una conexión con el archivo excel.. o sea esa conexion como es que se hace, si es que es ncesario.. Disculpe mi ignorancia..

  5. El delimitar el rango hasta la ultima celda con datos, ayuda mucho sobre todo cuando se analiza y cruza información entre varias tablas y una de ellas varia constantemente en cuanto a nro de registros. Antes de conocer esta opcion de VBA solia considerar rangos muy largos y el resultado a la vista no era lo deseado, aunque para mi trabajo era suficiente, sin embargo ahora que debo compartir ese proyecto es oportuno el uso de esta función.

  6. La rutina no es completa. Solo ubica la ultima celda del columna A. ¿Que pasa si en las columnas B, C y en adelante hay datos pero no en la 1?.

Deja un comentario

Required fields are marked *.


Excel Avanzado located at , Lima, Perú . Reviewed by usuarios rated: 4.7 / 5