A
volte capita di avere un elenco di dati in formato database e
di voler selezionare solo le righe che noi stessi o qualcun'altro ha
colorato. Questo putroppo non è possibile con Excel. si può
però superare il problema con VBA scrivendo una piccolissma
funzione da inserire nel foglio di lavoro:
_______________________________________________________________
Function ColoreCella(a
As Range, Filtro As
Integer) As String
Application.Volatile True
If Filtro=0 Then
ColoreCella = a.Interior.ColorIndex
Else
ColoreCella=a.Font.Color
End If
End Function
_______________________________________________________________
Questa funzione restituisce come
valore il codice colore della cella. Nel caso in cui Filtro sia
posto uguale a 0 restituisce il codice colore di sfondo, altrimenti,
per qualsiasi altro valore, restituisce il codice colore del colore
del testo inserito nella cella.
Poco importa in realtà come Excel codifica internamente i colori
della parte interna delle celle. Quelle che basta sapere è che per
colori diversi avremo numeri diversi.
Ma come si usa questa
funzione?
Per prima cosa si inserisce il
codice (copiandolo e incollandolo direttamente da questa pagina) su
un modulo VBA del file nel quale sui vuole usare la funzione. Poi si
fa questo: se in cella H1 si desidera avere il codice colore della
cella A1 bisogna scrivere nella formula di H1:
=ColoreCella(A1,0) |
per avere il codice colore dello sfondo della
cella A1 |
=ColoreCella (A1,1) |
per avere il codice colore del testo della cella
A1 |
Benissimo. Adesso in cella H1
comparirà un numero. Tale numero è il codice colore della cella
A1. Se avete un database che si estende dalla cella A1 alla cella
A200 non dovete fare altro che ripetere fa formula della cella H1
fino alla cella H200. A questo punto, ricalcolato il foglio di
lavoro, non dovrete fare altro che eseugire un autofiltro sulla
colonna H:H per il codice colore corrispondente al colore che volete
selezionare!
|