Condividi:        

Colorare celle excel in base a una condizione

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Colorare celle excel in base a una condizione

Postdi ExS » 27/11/06 10:49

Ciao a tutti..questo è il mio primo messaggio quindi se sbaglio qualcosa fatemelo notare ;)
Vi espongo il mio problema: elaborando dati in excel ricavo una percentuale e vorrei che lo sfondo della cella contenente il valore si colorasse in base a questo.
Ho trovato in un altro post uno script
Private Sub Worksheet_Change(ByVal Target As Range)

Dim icolor As Integer
If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
icolor = 0
End Select
Target.Interior.ColorIndex = icolor
End If
End Sub

Solo che non riesco a modificarlo per fargli accettare i valori percentuali..ho provato con double ma non ho avuto successo...
Avete suggerimenti??
Ciao
Max
ExS
Newbie
 
Post: 4
Iscritto il: 27/11/06 10:45

Sponsor
 

Postdi Anthony47 » 27/11/06 11:18

La macro va incollata sull' area codice del Foglio a cui vuoi applicarla: doppioclick sulla voce "Foglio xx" nel frame "Progetto" (a sx), e incolli la macro nel frame di destra.

Essa si attiva solo per quel foglio e per le celle nel range A1:A10.

Puoi cambiare il range manipolando l' istruzione
Codice: Seleziona tutto
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then

(cambia A1:A10 con l' area a cui vuoi applicare la regola)

Per adeguarlo ai tuoi valori, dovrai creare una scala di "Case" che copra da 0 a 1; ad esempio il primo livello potrebbe essere
Codice: Seleziona tutto
Case 0 To 0.25
e il secondo
Codice: Seleziona tutto
Case 0.25 To 0.50

etc.

Aiuta?
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Anthony47 » 27/11/06 11:30

Ho dimenticato di aggiungere che se i colori che vuoi aggiungere sono max 3 piu' quello di default allora conviene usare la formattazione condizionale di cella.

Ciao,
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi ExS » 27/11/06 12:00

Grazie per la risposta..ho provato ma così non va...
come tipo di dati Double è corretto?le cifre che delimitano il range vanno inserite come x.xx o come x,xx?
Non riesco proprio a uscirne fuori!
ExS
Newbie
 
Post: 4
Iscritto il: 27/11/06 10:45

Postdi ExS » 27/11/06 12:12

Ok...ho risolto il problema semplicemente usando come valore il terget*100 e tenendo integer come tipo di dato..
Se avete soluzioni più raffinate fatevi sotto! :)
ExS
Newbie
 
Post: 4
Iscritto il: 27/11/06 10:45

Postdi ExS » 27/11/06 12:37

Emh...complico la domanda
come già scritto ho risolto il problema per come era scritto prima..
Ma se ora vi chiedessi come posso ottenere il valore numerico della cella se questa è percentuale? aiutatemi... :o
ExS
Newbie
 
Post: 4
Iscritto il: 27/11/06 10:45

Postdi Anthony47 » 27/11/06 16:34

ExS ha scritto:..ho provato ma così non va...
come tipo di dati Double è corretto?le cifre che delimitano il range vanno inserite come x.xx o come x,xx?


In vba le cifre vanno rappresentate all’ americana, quindi il separatore decimale deve essere il “punto”, mentre la “virgola” e’ un semplice separatore di elenco.

Ok...ho risolto il problema semplicemente usando come valore il terget*100 e tenendo integer come tipo di dato

Giusto; se non metti i decimali moltiplichi per 100 e ottieni lo stesso effetto.

Se avete soluzioni più raffinate fatevi sotto!

E’ difficile raccogliere la sfida: 3*2 si fa o come =3*2 oppure come =2*3; tutte le altre soluzioni sono meno eleganti.

Ma se ora vi chiedessi come posso ottenere il valore numerico della cella se questa è percentuale?

Piu’ che complicata la domanda e’ misteriosa: nel senso che nella cella hai gia’ un valore numerico che ora hai formattato come visualizzazione percentuale, cosi’ che il numero decimale 0,33 (ad esempio) ti viene ora rappresentato come 33%. Per raffronto, se formattassi la stessa cella come “orario”, vedresti rappresentato 07:55, ma la cella contiene sempre il valore 0,33.
Quindi quello che chiedi ce l’ hai gia’, devi solo cambiare la formattazione della cella da tipo “Percento” a tipo “Numero”; comunque se devi elaborare quel dato non e’ necessario cambiarne il formato, cioe’ se sommi ad esempio 2,5 con 33% otterrai correttamente 2,83.

Aiuta?
Avatar utente
Anthony47
Moderatore
 
Post: 19220
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Colorare celle excel in base a una condizione":


Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti