Conocer la Ultima Fila de un Documento

Hola Amigo...
Necesito terminar una macro en la que debo insertar lineas en un formato, el problema es que al final del formato están las lineas de totales, entonces necesito conocer la posición de la linea activa, luego saber cuantas lineas tiene el documento y restarle 3 lineas a ese número para compararlo con el de la posición activa y saber si puedo insertar lineas o no, en resumen lo que necesito es controlar que no se inserte lineas después de las lineas de subtotales y totales...
Gracias de antemano...

1 respuesta

Respuesta
1
Situación frecuente. Por ello VBA proporciona una propiedad que permite identificar la última celda de un rango *continuo* (i.e. Todas las celdas llenas o todas vacías).
Supongamos que en la columna A tienes la numeración de las filas. Si utilizas:
Range("A4").End(xldown).Select
El cursor se posicionara en la última celda antes de encontrar una vacía.
Si, en cambio, en ese rango estuvieran todas la celdas vacías, la sentencia mencionada, se detendrá en la primer celda con dato (por ejemplo (Totales)
Puedes combinar la propiedad offset para que considere, tres celdas arriba de la celda encontrada. Algo así como:
Range("A4").End(xldown).Offset(-3,0).Select
---
Ahora bien, si ésta no fuese tu situación, es decir que no tuvieses un rango continuo en donde basar la función, existe otra forma de identificar la ultima celda.
La propiedad UsedRange podría ser útil, toda vez que devuelve el rango utilizado en la hoja.
Si realmente la linea de totales es la última utilzada en esa hoja, podrás aplicar una sentencia como la siguiente para seleccionarla:
Cells(ActiveSheet.UsedRange.Rows.Count, 1).Select
Esta seleccionará la última celda del rango ocupado, en la columna "A".
Pero ten cuidado, pues el solo hecho de haber ocupado una celda por debajo del total (para hacer un cálculo, por ejemplo), MS Excel la considerará como la última línea ocupada de esta hoja, aún cuando borres esos contenidos.
Por tal razón, prefiero la primera opción que te dí. Tanto que seria capaz de crear una columna llena con cualquier dato, al solo efect de usarla como referencia.
Espero que esto realmente te ayude. Si así fuera, ya sabe es qué hacer... ;)
Un abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas