Condividi:        

Colorare le celle a seconda dei valori di altre celle

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 le celle a seconda dei valori di altre celle

Postdi fantina » 22/10/10 14:57

Ritorno sull'argomento.
La mia necessità è che lo sfondo delle celle di una lista di nomi, incolonnati in B, si colori a seconda del valore presente nella cella affiancata in colonna L: la stessa colonna L deve reagire con la stessa logica e stessi colori.
I range di valori possibili che entreranno in L sono:
da zero a 6 = color arancione
da 7 a 15 = rosetto
da 15 a 43 = giallo pallido
da 44 a 100 = verde brillante

Mi aiutate??

Ripeto: avevo già visto una discussione simile l forum ma non la trovo più... :) grazie
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Sponsor
 

Re: Colorare le celle a seconda dei valori di altre celle

Postdi fantina » 22/10/10 15:04

Scusate: una piccola rettifica: da 1 a 6 (anzichè da zero a 6) e un'altra richiesta: posso anche averli riordinati automaticamente per colore, quindi per colonna L crescente?
Grazie
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: Colorare le celle a seconda dei valori di altre celle

Postdi ricky53 » 22/10/10 17:25

Ciao,
che versione di Office utilizzi?

Con il 2003 è necessaria una macro, con le successive versioni si può fare anche con la formattazione condizionale.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Colorare le celle a seconda dei valori di altre celle

Postdi paolox » 23/10/10 01:02

ciao
interessa anche ha me come fare con una macro,
attualmente io coloro i numeri che si trovano nella tabella da A3 fino a AY148
inserendo con la formattazione condizionale nelle celle
da BB16 a BC16 per il rosso
da BB17 a BC17 per il verde
da BB18 a BC18 per il celeste.

vorrei aumentare la possibilità di altre colorazioni
inserendo i numeri da cercare da BB19 a BC32,
che sono le celle senza numero del mio allegato,
quale macro devo inserire?
vi allego la foto del mio foglio,
lo mando con due immagini perchè tutto
il foglio non riesco con una sola (scusate l'imbranataggine mia)

spero sia chiaro

ringrazio anticipatamente

ciao

Immagine
Immagine


http://yfrog.com/euimmaginefnep
http://yfrog.com/1rimmagine1ebp
paolox
Utente Senior
 
Post: 269
Iscritto il: 05/06/04 11:48
Località: lodigiano

Re: Colorare le celle a seconda dei valori di altre celle

Postdi Anthony47 » 23/10/10 01:47

Per fantina: per suggerire qualcosa di sensato io avrei bisogno di sapere se i valori in L e B sono ottenuti con formule o tramite digitazione.

Per paolox: le immagini non danno proprio i dettagli, quindi mi limito al principio.
Devi spazzolare tutte le celle nel range che ti interessa (es For Each Cell in range("A1:A111") /Next Cell) all' interno del quale verifichi quale colore assegnare e lo assegni con Cell.Interior.Color=RGB(valoreRosso, ValoreVerde,ValoreBlu)

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

Re: Colorare le celle a seconda dei valori di altre celle

Postdi fantina » 23/10/10 12:11

I valori nella colonna B sono digitati, non cambiano mai; in L metto la formula cerca verticale, però ho notato che se non ridigito il risultato della formula non mi si aggiornano i "SE" collegati (sia questo che quello di origine provengono da estrazione dati da software) quindi, come risposta, direi che sono tutti dati digitati.
Uso excel 2003.
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: Colorare le celle a seconda dei valori di altre celle

Postdi Anthony47 » 23/10/10 17:13

In questo caso ti consiglierei di lavorare con una macro di evento Worhsheet_Change, qualcosa come:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Application.EnableEvents = False
Calculate
Select Case Target.Offset(0, 4).Value
    Case Is >= 44
    Icol = RGB(0, 200, 0)
    Case Is >= 15
    Icol = RGB(0, 150, 150)
    Case Is >= 7
    Icol = RGB(100, 100, 0)
    Case Is > 1
    Icol = RGB(200, 200, 0)
    Case Else
    Icol = RGB(255, 255, 255)
End Select
Target.Interior.Color = Icol
Application.EnableEvents = True
End Sub
Aggiusterai le componenti RGB(a,b,c) per avere la tonalita' cromatica che piu' preferisci; a,b,c vanno da 0 a 255 e sono rispettivamente il contenuto di Rosso, Verde, Blu.
Ho inserito un calculate nella macro per cercare di risolvere l' aggiornamento della col L che dici non avviene in automatico.
Tasto dx sul tb col nome del foglio su cui lavori, scegli Visualizza codice, inserisci la macro nel frame vuoto di dx; se ci sono gia' altre macro controlla che non ce ne sia gia' una di tipo Worksheet_Change

In questo modo tutte le volt che inserisci un valore in col B viene applicato il colore legato al contenuto di col L.

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

Re: Colorare le celle a seconda dei valori di altre celle

Postdi Francesco53 » 23/10/10 21:32

Buona sera a tutti,
per Paolox prova questa macro:
Codice: Seleziona tutto
Sub colora()
Dim riga, colonna As Long
Dim riga1, colonna1 As Long
Range("A3:AY148").Interior.ColorIndex = 2
On Error Resume Next
 
  For riga = 3 To 148
  For colonna = 1 To 51
  For Num = 0 To 1
If Cells(riga, colonna) = Cells(16, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 4 'Verde
End If
If Cells(riga, colonna) = Cells(17, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 28 'Azzurro
End If
If Cells(riga, colonna) = Cells(18, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 3 'Rosso
End If
If Cells(riga, colonna) = Cells(19, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 46 'Arancione
End If
If Cells(riga, colonna) = Cells(20, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 5 'Blu
End If
If Cells(riga, colonna) = Cells(21, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 6
End If
If Cells(riga, colonna) = Cells(22, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 7
End If
If Cells(riga, colonna) = Cells(23, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 9
End If
If Cells(riga, colonna) = Cells(24, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 10
End If
If Cells(riga, colonna) = Cells(25, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 11
End If
If Cells(riga, colonna) = Cells(26, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 12
End If
If Cells(riga, colonna) = Cells(27, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 13
End If
If Cells(riga, colonna) = Cells(28, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 14
End If
If Cells(riga, colonna) = Cells(29, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 15
End If
If Cells(riga, colonna) = Cells(30, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 16
End If
If Cells(riga, colonna) = Cells(31, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 17
End If
If Cells(riga, colonna) = Cells(32, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 18
End If

Next
Next
Next
End Sub

per fantina:
vedi se riesci ad adattare i riferimenti al tuo foglio, se hai difficoltà,
cercherò di inviarti una macro per la tua necessità.
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Colorare le celle a seconda dei valori di altre celle

Postdi Francesco53 » 23/10/10 22:57

Un saluto a tutti,
per Paolox:
ti ho aggiunto la possibilità di evidenziare del colore anche ila cella dei numeri da ricercare,
questo ti dovrebbe permettere di abbinare più facilmente la ricerca visiva ai numeri.
Codice: Seleziona tutto
Sub colora()
Dim riga, colonna As Long
Dim riga1, colonna1 As Long
Range("A3:AY148").Interior.ColorIndex = 2
On Error Resume Next
 
  For riga = 3 To 148
  For colonna = 1 To 51
  For Num = 0 To 1
If Cells(riga, colonna) = Cells(16, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 4 'Verde
     Cells(16, 53).Interior.ColorIndex = 4
End If
If Cells(riga, colonna) = Cells(17, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 28 'Azzurro
     Cells(17, 53).Interior.ColorIndex = 28
End If
If Cells(riga, colonna) = Cells(18, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 3 'Rosso
     Cells(18, 53).Interior.ColorIndex = 3
End If
If Cells(riga, colonna) = Cells(19, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 46 'Arancione
     Cells(19, 53).Interior.ColorIndex = 46
End If
If Cells(riga, colonna) = Cells(20, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 5 'Blu
     Cells(20, 53).Interior.ColorIndex = 5
End If
If Cells(riga, colonna) = Cells(21, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 6
     Cells(21, 53).Interior.ColorIndex = 6
End If
If Cells(riga, colonna) = Cells(22, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 7
     Cells(22, 53).Interior.ColorIndex = 7
End If
If Cells(riga, colonna) = Cells(23, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 9
     Cells(23, 53).Interior.ColorIndex = 9
End If
If Cells(riga, colonna) = Cells(24, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 10
     Cells(24, 53).Interior.ColorIndex = 10
End If
If Cells(riga, colonna) = Cells(25, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 11
     Cells(25, 53).Interior.ColorIndex = 11
End If
If Cells(riga, colonna) = Cells(26, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 12
     Cells(26, 53).Interior.ColorIndex = 12
End If
If Cells(riga, colonna) = Cells(27, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 13
     Cells(27, 53).Interior.ColorIndex = 13
End If
If Cells(riga, colonna) = Cells(28, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 14
     Cells(28, 53).Interior.ColorIndex = 14
End If
If Cells(riga, colonna) = Cells(29, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 15
     Cells(29, 53).Interior.ColorIndex = 15
End If
If Cells(riga, colonna) = Cells(30, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 16
     Cells(30, 53).Interior.ColorIndex = 16
End If
If Cells(riga, colonna) = Cells(31, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 17
     Cells(31, 53).Interior.ColorIndex = 17
End If
If Cells(riga, colonna) = Cells(32, 54 + Num) Then
     Cells(riga, colonna).Interior.ColorIndex = 18
     Cells(32, 53).Interior.ColorIndex = 18
End If

Next
Next
Next
End Sub

Ciao
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Colorare le celle a seconda dei valori di altre celle

Postdi paolox » 24/10/10 07:31

ciao Francesco 53
ho provato ad inserire la tua macro,
ma mi colora solo i primi 3 numeri,
inoltre le celle vuote si colorano di viola,
ti allego l'immagine, sbaglio qualcosa io
nell'inserire la macro oppure c'è qualcosa
che non va nella macro?

ti ringrazio per la tua disponibilità
fammi sapere
ciao

Immagine
paolox
Utente Senior
 
Post: 269
Iscritto il: 05/06/04 11:48
Località: lodigiano

Re: Colorare le celle a seconda dei valori di altre celle

Postdi Francesco53 » 24/10/10 10:32

Ciao Paolox,
dalla immagine vedo che nella colonna BA ti colora in modo corretto, non riesco a capire cosa succede
nelle colonne a sinistra da A3 a AY148. Io ho provato anche ad eliminare alcuni numeri dalle celle, e le
stesse non vengono colorate, quanto ti accade è strano, prova a riprendere la macro e copiarla nuovamente,
non vorrei che qualche parte sia stata persa nel copia ed incolla.
Fai sapere
Francesco
S.O. Windows 10 e Office 2007
Avatar utente
Francesco53
Utente Senior
 
Post: 811
Iscritto il: 20/02/10 18:45

Re: Colorare le celle a seconda dei valori di altre celle

Postdi paolox » 24/10/10 14:50

ciao Francesco53
ho rifatto la procedura
questa volta ho usato ctrl+ c
e ctrl+v per fare copia/incolla
ed in effetti è andata a buon fine
ecco il risultato

grazie mille dell'aiuto
ciao

Immagine
paolox
Utente Senior
 
Post: 269
Iscritto il: 05/06/04 11:48
Località: lodigiano

Re: Colorare le celle a seconda dei valori di altre celle

Postdi fantina » 26/10/10 13:19

Dunque Anthony, sembra che l'istruzione si fermi subito: legge solo il colore del "Case Is >= 44" indipendentemente dal valore in colonna L.
Inoltre la lista di nomi in B è fissa, non la modifico mai, quindi l'effetto dovrebbe essere che quello che scrivo in L colora sia L che B (se ho capito bene quello che mi hai detto...)


(Francesco, nella tua non ci ho capito molto ma grazie!)
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: Colorare le celle a seconda dei valori di altre celle

Postdi Anthony47 » 26/10/10 18:30

Ancora una volta ti ho sbagliato il codice:
sostituire Select Case Target.Offset(0, 4).Value con
Codice: Seleziona tutto
Select Case Target.Offset(0, 10).Value

(quella prima lavorava sul col F invece che L)

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

Re: Colorare le celle a seconda dei valori di altre celle

Postdi fantina » 26/10/10 19:05

ok, ho capito che non mi vuoi più bene... :aaah

La provo domani e ti so dire :D
fantina
Utente Senior
 
Post: 491
Iscritto il: 05/03/07 15:24

Re: Colorare le celle a seconda dei valori di altre celle

Postdi Anthony47 » 26/10/10 23:21

Mi hai scoperto :oops:
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Colorare le celle a seconda dei valori di altre celle":


Chi c’è in linea

Visitano il forum: Nessuno e 81 ospiti