Chuck ha scritto della necessità di ordinare i record in un foglio di lavoro in base al colore di riempimento utilizzato in una cella. Excel non fornisce alcuna funzione intrinseca per eseguire tale azione, ma è possibile creare una funzione definita dall’utente che aiuterà con qualsiasi ordinamento che deve essere eseguito. Considera la seguente macro:

Function GetFillColor(rng As Range) As Long     GetFillColor = rng.Interior.ColorIndex End Function

Supponendo che i colori di riempimento siano nelle celle della colonna A, tutto ciò che devi fare è assicurarti che ci sia una colonna vuota B. Quindi inserisci la seguente formula nella cella B2 e copiarla per ogni record:

=GetFillColor(A2)

Al termine, la colonna B conterrà i valori di indice di ciascun colore di riempimento utilizzato nella colonna A. È quindi possibile ordinare in base alla colonna B, che ha il risultato di raggruppare tutti i colori di riempimento simili.

Se hai bisogno di essere più elaborato, ad esempio, se devi ordinare in un ordine particolare (giallo prima, rosso secondo, verde terzo, ecc.), Non puoi fare affidamento esclusivamente sul valore di indice del colore di riempimento. In tal caso, devi fare affidamento su un metodo diverso per restituire un colore.

Considera la seguente macro:

Function GetColor(rngIndex As Range, rngSource As Range) As Long     Dim lngColor As Long     Dim J As Integer

Application.Volatile     lngColor = rngSource.Interior.ColorIndex

GetColor = 99       'Set to default color     For J = 1 To rngIndex.Count         If rngIndex(J).Interior.ColorIndex = lngColor Then             GetColor = J         End If     Next J End Function

Questa macro funziona in modo diverso dall’ultima. Richiede due intervalli per funzionare correttamente. Il primo intervallo è fondamentalmente una tabella dei colori che indica l’ordine in cui si desidera ordinare i colori. Ad esempio, le celle da E1 a E9 potrebbero contenere i nove colori che desideri utilizzare per l’ordinamento, nell’ordine in cui desideri ordinarli. Dovresti quindi inserire la seguente formula nella cella B2 e copiarla per ogni record:

=GetColor($E$1:$E$9,A2)

Il risultato è che la colonna B conterrà i valori da 1 a 9, che rappresentano i colori nella tabella dei colori. Se il colore in una cella non ha un colore corrispondente nella tabella dei colori, la funzione restituisce il valore 99. Quando si ordinano i record nella tabella, si finisce con l’ordinarli come si desidera.

_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 (2009) si applica a Microsoft Excel 97, 2000, 2002 e 2003.