Eseguire l'autofiltro utilizzando il colore delle celle 
(sfondo e colore del testo)


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!

 


iscriviti cancellati

 


Commenti a questa pagina:   Inviate una mail