Questa che presento potrebbe essere la nostra prima Macro. Per crearla ci faremo aiutare dal Registratore di macro. Useremo Il Registratore di macro per imparare le proprietà da usare per colorare le celle
Potrebbe essere che dobbiamo risolvere questo semplice problema.
|
Data questa tabella vogliamo che:
Ovviamente le intestazioni di riga e di colonna dovranno rimanere invariate. |
Creazione della macro
Nella macro che scriveremo ci saranno delle operazioni preliminari:
Compiuta questa operazione possiamo chiedere l'aiuto al Registratore di macro per conoscere:
il metodo e le proprietà da usare per colorare una cella
il codice del colore che desideriamo.
Per attivare il registratore di macro possiamo usare uno dei seguenti metodi. Andati sul foglio di lavoro:
dal menù strumenti scegliemo Macro ---> registra nuova macro
col clik destro del mouse su una delle barre degli strumenti scegliere la barra Vsual Basic e da questa cliccare sul pulsante Registra macro
Fatta una delle scelte viene fuori questa finestra nella quale possiamo senz'altro cliccare su OK
compiamo sul foglio le operazioni che vogliamo
interrompiamo la registrazione cliccando sul pulsante Interrompi registrazione della nuova barra che nel frattempo era venuta fuori
La registrazione della nuova macro da implementare nella nostra routine
Abbiamo detto sopra che vogliamo colorare le nostre celle, a seconda delle circostanze, usando i colori: rosso, verde, blu, giallo.
Quindi attiviamo il registratore ed iniziamo a colorare le celle coi colori desiderati. Alla fine togliamo anche i colori perchè nella nostra routine ci servirà anche questo.
Finito di compiere queste azioni interrompiamo il registratore.
Andiamo in VBA (ALT + F11) e controlliamo quel che il nostro registratore ha scritto.
Ora sappiamo queste cose:
per colorare una cella dobbiamo usare la Proprietà Interior seguito dalla Proprietà ColorIndex a cui assegnare uno dei valori relativi ai colori (costanti di ColorIndex):
Nel nostro esempio:
3 per il rosso
43 per il verde
42 per il blu
36 per il giallo
xlNone per togliere qualsiasi colore
Di tutte le istruzioni a noi servirà solo questa:
Selection.Interior.ColorIndex = costante
Al posto si Selection useremo il riferimento alle singole celle come vedremo qui di segioto.
Quindi possiamo continuare a scrivere la nostra routine concludendo il nostro lavoro.
Nelle nuove istruzioni ne vediamo una che in questo contesto è il cuore della routine:
Dec = Int(Intervallo(R, C) / 10)
Con questa istruzione viene diviso per 10 il valore che si incontra in Intervallo(R, C) e dal risultato viene presa la sola parte intera. Questo valore servirà poi per determinare il colore della cella.
Mandando in esecuzione questa routine, con una tabella come quella visualizzata all'inizio avremo questa situazione dove: