Ordinamento per colori (Microsoft Excel)
Excel ti consente di ordinare i dati nei tuoi fogli di lavoro in base a un numero qualsiasi di attributi. Una delle cose in base alle quali non è possibile ordinare intrinsecamente, tuttavia, è il colore delle celle, almeno non senza l’aggiornamento a Excel 2007 o versioni successive. Per alcune applicazioni questa potrebbe essere una funzionalità molto utile.
La seguente macro, SortByColor, ordinerà una tabella in base al colore con cui è formattata una cella.
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 funziona chiedendoti prima la cella iniziale dell’intervallo che desideri ordinare. Questa dovrebbe essere la cella più in alto nell’intervallo. La macro quindi inserisce una colonna (solo temporaneamente) in cui è possibile memorizzare i valori dei colori. Quindi passa attraverso ogni cella nell’intervallo definito dalla cella iniziale specificata.
SortByColor presuppone che la tabella dati non abbia una riga di intestazione. In caso affermativo, è necessario modificare il comando di ordinamento effettivo. Cambia semplicemente Header: = xlNo in Header: = xlYes.
Si noti che la macro SortByColor ordinerà solo le celle in base al colore esplicito applicato alla cella, non ordinerà se il colore della cella è il risultato della formattazione condizionale.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (3122) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: