Noticias:

Ya hay algunas cosas colgadas en la web así que ya vuelve a estar disponible.

Menú Principal

Última fila con datos de un fichero Excel

Iniciado por xavi, Octubre 22, 2020, 07:51:09 PM

Tema anterior - Siguiente tema

xavi

Palabras clave: Excel, automatización, registros
Autor: Jesus Mansilla (Mihura)

En ocasiones necesitamos leer un fichero Excel mediante automatización y, para poder mostrar "algo" que nos de idea del progreso, es necesario averiguar la cantidad de registros afectados,

Una opción es insertar una fórmula en una celda "lejana" que nos haga un COUNTA (CONTARA) de los registros de una columna que sepamos debe estar toda rellena.

xls.ActiveSheet.Cells(1, 255).FormulaR1C1 = "=COUNTA(C1)

Leer el resultado (restarle 1 si existe una fila de titulos) y eliminar el contenido de la celda. Hay que acordarse de que, al cerrar el Excel, no se guarden los cambios.

Jesus presenta una alternativa:

UltimaFila = xls.ActiveSheet.Cells(xls.ActiveSheet.Rows.Count, 1).End(xlUp).Row

Traducido: posicionarse en la ultima fila de la hoja (ActiveSheet.Rows.Count) en su primera columna (1) y "tirar p'arriba" con .End(xlUp)  (equivalente a Ctrl + flecha arriba). Ello posiciona en la ultima celda escrita de la columna. Y de allí tomamos la fila (.Row)

Lo mismo para las columnas
UltimaColumna = xls.ActiveSheet.Cells(1, xls.ActiveSheet.Columns.Count).End(xlToLeft).Column

Ingenioso.