Clasificación por colores (Microsoft Excel)
Excel le permite ordenar los datos en sus hojas de trabajo por cualquier número de atributos. Sin embargo, una de las cosas por las que no puede ordenar intrínsecamente es el color de las celdas, al menos no sin actualizar a Excel 2007 o posterior. Para algunas aplicaciones, esta podría ser una característica muy útil.
La siguiente macro, SortByColor, ordenará una tabla en función del color con el que se formatea una celda.
Sub SortByColor() On Error GoTo SortByColor_Err Dim sRangeAddress As String Dim sStartCell As String Dim sEndCell As String Dim rngSort As Range Dim rng As Range Application.ScreenUpdating = False sStartCell = InputBox("Enter the cell address of the " & _ "top cell in the range to be sorted by color" & _ Chr(13) & "i.e. 'A1'", "Enter Cell Address") If sStartCell > "" Then sEndCell = Range(sStartCell).End(xlDown).Address Range(sStartCell).EntireColumn.Insert Set rngSort = Range(sStartCell, sEndCell) For Each rng In rngSort rng.Value = rng.Offset(0, 1).Interior.ColorIndex Next Range(sStartCell).Sort Key1:=Range(sStartCell), _ Order1:=xlAscending, Header:=xlNo, _ Orientation:=xlTopToBottom Range(sStartCell).EntireColumn.Delete End If SortByColor_Exit: Application.ScreenUpdating = True Set rngSort = Nothing Exit Sub SortByColor_Err: MsgBox Err.Number & ": " & Err.Description, _ vbOKOnly, "SortByColor" Resume SortByColor_Exit End Sub
La macro funciona preguntándole primero la celda inicial del rango que desea ordenar. Esta debería ser la celda más alta del rango. Luego, la macro inserta una columna (solo temporalmente) en la que se pueden almacenar los valores de color. Luego recorre cada celda en el rango definido por la celda inicial que especificó.
SortByColor asume que su tabla de datos no tiene una fila de encabezado. Si es así, debe cambiar el comando de clasificación real. Simplemente cambie Encabezado: = xlNo a Encabezado: = xlYes.
Debe tener en cuenta que la macro SortByColor solo clasificará las celdas según el color explícito aplicado a la celda, no clasificará si el color de la celda es el resultado de un formato condicional.
_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 (3122) 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í:
enlace: / excelribbon-Sorting_by_Colors [Clasificación por colores]
.