Stefano vorrebbe creare un’istruzione SE (usando la funzione del foglio di lavoro) basata sul colore di una cella. Ad esempio, se A1 ha un riempimento verde, vorrebbe restituire la parola “vai”, se ha un riempimento rosso, vorrebbe restituire la parola “stop” e se è di qualsiasi altro colore restituire la parola “irrilevante”. Stefano preferisce non usare una macro per farlo.
Sfortunatamente, non c’è modo di portare a termine questa attività in modo accettabile senza utilizzare le macro, in una forma o nell’altra.
La soluzione, quindi, è utilizzare una funzione definita dall’utente (UDF), che è (per definizione) una macro. La macro può controllare il colore con cui viene riempita una cella e quindi restituire un valore. Ad esempio, l’esempio seguente restituisce una delle tre parole, in base al colore presente in una cella target:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Questa macro valuta i valori RGB dei colori in una cella e restituisce una stringa basata su tali valori. Puoi usare la funzione in una cella in questo modo:
=CheckColor1(B5)
Se preferisci controllare i colori indice invece dei colori RGB, la seguente variazione funzionerà allo scopo:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Sia che tu stia utilizzando l’approccio RGB o l’approccio dell’indice di colore, ti consigliamo di verificare che i valori utilizzati nelle macro riflettano i valori effettivi utilizzati per i colori nelle celle che stai testando. In altre parole, Excel ti consente di utilizzare diverse sfumature di verde e rosso, quindi ti consigliamo di assicurarti che i valori RGB e i valori dell’indice di colore utilizzati nelle macro corrispondano a quelli utilizzati dalle sfumature di colore nelle celle.
Un modo per farlo è utilizzare una macro molto semplice che non fa altro che restituire un valore di indice del colore:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Ora, nel tuo foglio di lavoro, puoi usare quanto segue:
=ColoreRiempimento(B5)
Come risultato verrà visualizzato il valore dell’indice di colore della cella B5. Supponendo che la cella B5 sia formattata utilizzando uno dei colori previsti (rosso o verde), è possibile ricollegare il valore dell’indice alle macro precedenti per ottenere i risultati desiderati. Puoi semplicemente saltare quel passaggio, tuttavia, e fare affidamento sul valore restituito da ColoreRiempimento per mettere insieme una formula SE, in questo modo:
=SE(ColoreRiempimento(B5)=4;"Vai"; SE(ColoreRiempimento(B5)=3;"Stop"; "Irrilevante"))
Tieni presente che queste funzioni (sia che tu guardi i valori di colore RGB o i valori di indice di colore) esaminano la formattazione esplicita di una cella. Non prendono in considerazione alcuna formattazione implicita, come quella applicata tramite la formattazione condizionale.
Per altre buone idee, formule e funzioni sull’utilizzo dei colori, fai riferimento a questa pagina sul sito Web di Chip Pearson.