Pat se pregunta si hay una forma de ordenar automáticamente cada vez que agrega nuevos datos a una hoja de trabajo. Pat piensa que sería genial, por ejemplo, que cuando agregue un nuevo nombre a una lista de nombres, los nombres se clasifiquen automáticamente para estar siempre en orden.

La única forma de hacerlo es mediante el uso de una macro que se activa cada vez que se ingresa algo nuevo en la hoja de trabajo. Puede, por ejemplo, agregar una macro al código de una hoja de trabajo que se activa cuando algo en la hoja de trabajo cambia. (Puede ver la ventana de código haciendo clic con el botón derecho en la pestaña de la hoja de trabajo y seleccionando Ver código en el menú contextual resultante). El siguiente es un ejemplo de una macro tan simple:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next     Range("A1").Sort Key1:=Range("A2"), _       Order1:=xlAscending, Header:=xlYes, _       OrderCustom:=1, MatchCase:=False, _       Orientation:=xlTopToBottom End Sub

La macro asume que desea ordenar los datos en la columna A y que hay un encabezado en la celda A1. Si los nombres están en una columna diferente, simplemente cambie la referencia de la celda A2 a una columna diferente, como B2, C2, etc.

Por supuesto, clasificar cada vez que se realiza algún cambio puede resultar molesto.

Es posible que desee limitar cuándo se realiza la clasificación para que solo ocurra cuando se realicen cambios en una parte específica de sus datos. La siguiente versión de la macro ordena los datos solo cuando se realiza un cambio en la columna A.

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next     If Not Intersect(Target, Range("A:A")) Is Nothing Then         Range("A1").Sort Key1:=Range("A2"), _           Order1:=xlAscending, Header:=xlYes, _           OrderCustom:=1, MatchCase:=False, _           Orientation:=xlTopToBottom     End If End Sub

Existen algunos inconvenientes en el uso de una macro para ordenar automáticamente sus datos. Primero, dado que está utilizando una macro para ordenar, la operación es esencialmente «final». En otras palabras, después de la clasificación, no puede usar Ctrl + Z para deshacer la operación.

Un segundo inconveniente es que la entrada de datos puede resultar un poco desconcertante.

Por ejemplo, si usa cualquiera de las macros anteriores y comienza a poner nombres en la hoja de trabajo, se ordenarán tan pronto como termine lo que está en la columna A. Si sus datos usan cinco columnas y comienza su entrada en la fila 15 , tan pronto como termine de ingresar el nombre en la columna A (y antes de ingresar datos en las columnas B a E), sus datos se clasifican en el orden correcto. Esto significa que deberá encontrar dónde se movió en la clasificación, seleccionar la celda adecuada en la columna B y luego ingresar el resto de los datos para el registro. Por supuesto, la forma de evitar esto es agregar sus datos en un orden no natural; simplemente asegúrese de que el nombre en la columna A sea lo último que ingrese para el registro.

_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 (9005) 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-Automatically_Sorting_as_You_Enter_Information [Clasificación automática cuando ingresa información].