Excel – una funzione per i colori delle celle

Vi è mai capitato di dover ordinare o filtrare una lista in excel in base al colore delle celle?

Qualche giorno fa ho fornito ad un cliente una lista chiedendo di indicare le voci superflue.

Quando ho ricevuto la lista rielaborata, mi sono accorto che il cliente aveva usato due colori per discriminare gli elementi: il giallo ed il rosso.

Ma come fare a filtrare gli elementi in base al colore?

Visto che le formule non mi sono state di grande aiuto, ho deciso di scriverne una io.

Di seguito presento una funzione in grado di restituire il colore di una cella (o range di celle). Il colore può essere riferito allo sfondo (motivo) oppure al tratto (foreground).

La funzione dovrebbe restituire (dico dovrebbe perché non ne sono sicuro) un valore a 24 bit rappresentante la codifica del colore (8x8x8)

L’importante però è avere un valori diversi per colori diversi.

Public Function Colore(r As Range, Tipo As String) As Long
    Select Case UCase(Tipo)
        Case "MOTIVO"
            Colore = r.Interior.Color

         Case "TRATTO"
            Colore = r.Font.Color

         Case Else
            Colore = -1
    End Select
End Function

Per ottenere il valore relativo al tratto possiamo usare ad esempio la formula:

=colore(A1;"tratto")

Mentre per lo sfondo possiamo usare ad esempio la formula:

=colore(A1;"motivo")


Per comodità al fondo di questo articolo ho inserito una add-in excel (formato xla) contenente la funzione.

Scarica l’add-in

Alla prossima.

Leave a comment

2 Comments.

  1. Grazie, soluzione che fa proprio al caso mio

  2. Ottimo grandissimo lavoro, facile da usare ed estremamente efficace anche con fogli con più colori!!!

Leave a Reply


[ Ctrl + Enter ]