Si está trabajando en una hoja de trabajo, sabe que puede presionar Ctrl + Fin para saltar a la última celda de la hoja de trabajo. Lo que hace el atajo es elegir la celda que representa la intersección de la última columna que contiene datos y la última fila que contiene datos. Por lo tanto, si la última columna en la que tiene datos es la columna F, y la última fila en la que tiene datos es la fila 27, Ctrl + Fin seleccionará la celda F27.

Para hacer esta misma tarea desde una macro, usa un comando muy simple, como se muestra aquí:

Sub FindLast1()

ActiveCell.SpecialCells(xlLastCell).Select End Sub

Funcionalmente, esto es lo mismo que presionar Ctrl + Fin. Sin embargo (y este es un gran problema), Excel no realiza un seguimiento dinámico de qué filas y columnas se usan por última vez en una hoja de trabajo. Por ejemplo, supongamos que abre un libro de trabajo, presiona Ctrl + Fin y lo lleva a la celda F27. Si luego elimina 3 filas y una columna, esperaría que Ctrl + Fin lo lleve a la celda E24. No es así; todavía lo lleva a la celda F27, hasta que guarde el libro y lo vuelva a abrir.

Este mismo problema afecta al código de macro que se muestra en la macro FindLast1; lo llevará a la celda «más alta», independientemente de las columnas o filas que haya eliminado durante la sesión actual.

Lo que se necesita es una forma de restablecer el indicador de «última celda», como si hubiera guardado y vuelto a abrir el libro. No hay un comando macro intrínseco que haga eso, pero hay una manera de forzar a Excel a que lo reinicie. Todo lo que necesita hacer es ajustar la macro de la siguiente manera:

Sub FindLast2()

x = ActiveSheet.UsedRange.Rows.Count     ActiveCell.SpecialCells(xlLastCell).Select End Sub

Esta macro siempre lo lleva a la celda adecuada; funciona como esperaría que Ctrl + Fin funcionara siempre. Funciona porque aparentemente Excel, cuando calcula la propiedad Count para el número de filas en la hoja de trabajo, siempre restablece el indicador de «última celda».

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2271) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Finding_the_Last-Used_Cell_in_a_Macro [Encontrar la última celda utilizada en una macro].