Web Analytics Formattazione condizionale in Excel 2007 e VBA in Excel 2003 - Blog di Laura Ciccarese

Blog di Laura Ciccarese

Office: un mondo da scoprire! Approfondimenti, Automation, VBA e altro ancora...

Formattazione condizionale in Excel 2007 e VBA in Excel 2003

La formattazione condizionale (nella scheda Home) rappresenta una grande novità di Excel 2007 poichè permette di assegnare uno sfondo colorato alle celle in base al  valore contenuto, secondo criteri diversi.

Consideriamo un elenco di dati come quello rappresentato nella figura seguente e vediamo alcuni esempi.

FormattazioneCondizionale01

 

1) Set di icone

Accanto al valore numerico viene visualizzato un simbolo (freccia, pallino, ecc.) con colore e dimensione che intuitivamente ne indicano il valore nella scala numerica costituita dai calori dell'intervallo stesso:

FormattazioneCondizionale02

 

2) Barre dei dati

Lo sfondo della cella viene colorato con un unico colore di larghezza proporzionale al valore contenuto:

FormattazioneCondizionale03

 

3) Regole Primi/Ultimi

Con questo tipo di formattazione si ottiene la colorazione delle celle che contengono i 10 valori numerici più elevati. E' possibile stabilire il colore dello sfondo e modificare il numero di valori da evidenziare (i primi 2, i primi 4, ecc)

 

FormattazioneCondizionale04

 

FormattazioneCondizionale05

 

4) Scala colori

Lo sfondo delle celle viene colorato con gradazioni di uno o più colori che ne indicano il valore: ad esempio, rosso più scuro per i numeri più bassi e giallo più chiaro per i numeri pù alti, passando dalle gradazioni intermedie:

 

FormattazioneCondizionale06

Tali formattazioni si possono sovrapporre (senza esagerare, naturalmente!) e, se avete esagerato con le sovrapposizioni, è possibile fare piazza pulita di qualsiasi regola di formattazione condizionale (o solo di alcune), mediante la funzionalità "Cancella regole", visibile nell'immagine precedente.

 

Prendendo spunto da un post di Mighell di u pò di tempo fa, Rappresentazione grafica dei dati in Excel, ho pensato ad una possibilità analoga per gli utenti di Excel 2003, che non dispongono di tali meraviglie.

Allora ho preparato una routine che, in base ai valori contenuti nell'intervallo, assegna le (poche!!!) sfumature di colori disponibili (avete guardato le sfumature disponibili nella versione 2007!?!?!?!).

La routine è la seguente:

 

Sub ColoraPercentuale()
    Dim myRg As Range
    Dim mycell As Range
    Dim maxValue As Double
    Dim minValue As Double
    Dim incr As Double
'individua la regione corrente a partire dalla cella attiva
    Set myRg = ActiveCell.CurrentRegion
'stabilisce il valore minimo e massimo tra i valori contenuti nell'intervallo
    maxValue = WorksheetFunction.Max(myRg)
    minValue = WorksheetFunction.Min(myRg)
'stabilisce l'incremente pari ad un sesto del range di valori per
'assegnare le 6 sfumature che vanno dal rosso al giallo chiaro
    incr = (maxValue - minValue) / 6
    For Each mycell In myRg.Cells
        Select Case mycell.Value
        Case minValue To minValue + incr
                mycell.Interior.ColorIndex = 3
        Case minValue + incr To minValue + incr * 2
               mycell.Interior.ColorIndex = 46
        Case minValue + incr * 2 To minValue + incr * 3
                mycell.Interior.ColorIndex = 45
        Case minValue + incr * 3 To minValue + incr * 4
                mycell.Interior.ColorIndex = 44
        Case minValue + ncr * 4 To minValue + incr * 5
                mycell.Interior.ColorIndex = 6
        Case minValue + incr * 5 To maxValue
                mycell.Interior.ColorIndex = 36
        End Select
Next mycell
End Sub

 

Ho predisposto, sulla barra di formattazione, un comando personalizzato associato alla routine e, dopo aver posizionato il cursore in una cella dell'intervallo, ecco il risultato:

FormattazioneCondizionale07

Certo, non è esattamente come la versione 2007, i colori non si aggiornano al variare dei dati (anche se si può pensare di farlo inserendo la routine sul ricalcolo del foglio e, se qualcuno è interessato, non deve fare altro che scrivere un commento al riguardo).

Ma, si sa, nella vita bisogna sapersi accontentare e il risultato non è poi così male, no?

Comments

Blog di Laura Ciccarese said:

Se siete interessati ad alcune novitàsulla formattazione condizionale di Excel 2007, guardate

# January 29, 2007 7:45 PM

donvito said:

Proprio così, Laura, nella vita bisogna pure accontentarsi. Del resto, come si suol dire: "Chi si contenta gode"... a metà, io aggiungo Big Smile

Ancora complimenti. Ottimo Tip Wink

# January 30, 2007 8:49 AM

Anonymous said:

C'è qualcosa di strano sul conteggio delle view di questo post. Restano sempre a 0 nonostante il post venga letto. Appena ho un attimo cerco di capire cosa succede.

Ciao

# January 30, 2007 10:03 AM

laura said:

L'ho notato anch'io.

Il post effettivo contiene poche righe ma non si vede perchè il link porta direttamente alla page!!!

# January 31, 2007 5:02 PM