Condividi:        

cambiare colore 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

cambiare colore celle

Postdi miko » 05/01/10 19:17

ciao,
ho cercato nel forum argomenti simili che potessero aiutarmi a realizzare una macro, ma non ho trovato nulla che mi desse dei suggerimenti di partenza.
vi espongo quindi il problema.
ho un range di celle,variabile sia per le colonne che per le righe e per i dati che si inseriscono;
ad esempio
col a ..... col j col l
a1 .... j1 somma (a1+...+j1)
a2 ..... j2 somma (a2+...+j2)
.........
a200 ......j200 somma (a200+...+j200)
.......
poichè i dati nel range a-j variano, variano di conseguenza anche le somme;
vorrei realizzare una macro tale che quando variano i valori in una riga del range a-j si colorassero le celle della colonna l nella quale sono cambiate le somme;
ad una successiva variazione dei valori nel range a-j, è possibile che altre celle della colonna l varino i loro valore, per cui, dovendo evidenziare questa nuova variazione, le celle precedenti ritorni al loro colore di default, mentre si colorino le celle che hanno subito la nuova variazione;
ad esempio:
prima cambia l1;

l1 colore rosso
l2 colore default

dopo cambia l2

l1 colore default
l2 colore rosso
in pratica ad ogni variazione del range a-j si evidenzino solo le celle della colonna l dove sono variati i valori.
ho provato con la formattazione condizionale, ma il cambiamento dei colori è statico, nel senso che una volta cambiato il colore della cella rimane quello per sempre;
forse sono io che non so usare la formattazione condizionale.
ciao grazie
miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: cambiare colore celle

Postdi Anthony47 » 05/01/10 23:04

Da come la capisco, vuoi che quando cambi un valore in nelle colonne A:J di riga1, evidenzi L1; quando fai lo stesso lavoro in riga2 evidenzi L2,e cosi' via.
E' cosi'? Quali sono le righe su cui vuoi applicare la regola, o sono tutte?

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

Re: cambiare colore celle

Postdi miko » 07/01/10 10:29

ciao,
nelle celle A:J si ripetono alcuni valori, se quindi sostituisco un valore, ad esempio nella cella A1, si sostituisce il medesimo valore anche in altre celle del range A:J, ad esempio A5, B7, J50;
di conseguenza cambia la somma in L1 e nelle celle della colonna L corrispondenti alle righe dove e avvenuta la sostituzione, ad esempio L3, L5, L20 ... L100.
per verificare in quale cella della colonna L ci sono state variazioni dovrei memorizzare la colonna L e poi dopo con copia-incolla affiancare la nuova colonna e scorrere il foglio per confrontare i vari valori nelle varie celle.
le righe del range A:J ed L, aumentano perchè inserisco altre righe in fondo al range.
penso che il modo di procedere, colorare le celle che hanno subito variazioni sia più efficace e veloce.
saluti, grazie
miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: cambiare colore celle

Postdi Flash30005 » 07/01/10 14:55

Prova questa combinazioni di macro

Codice: Seleziona tutto
Public VettoreV(2000), VettoreN(2000) As Integer
Sub AssegnaVal()
Worksheets("Foglio1").Select
RR = Range("A" & Rows.Count).End(xlUp).Row
For N = 1 To RR
VettoreV(N) = Range("L" & N).Value
Next N
End Sub
Sub ControllaVar()
RR = Range("A" & Rows.Count).End(xlUp).Row
For N = 1 To RR
VettoreN(N) = Range("L" & N).Value
If VettoreN(N) <> VettoreV(N) Then
    Range("L" & N).Interior.ColorIndex = 3
    Range("L" & N).Font.ColorIndex = 2
    VettoreV(N) = VettoreN(N)
Else
    Range("L" & N).Interior.ColorIndex = xlNone
    Range("L" & N).Font.ColorIndex = 0
End If
Next N

End Sub


Per il funzinamento dovrai inserire anche dei codici nel foglio1 (non modulo)
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
RR = Range("A" & Rows.Count).End(xlUp).Row
CheckArea = "L" & RR & ":L" & RR
If Not Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then Exit Sub
Call ControllaVar
End Sub


Per maggior sicurezza pubblico il file qui

Fai sapere
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cambiare colore celle

Postdi miko » 07/01/10 20:36

ciao,
grazie flash, ho provato le tue macro e, ovviamente, funzionano.
ho notato però che se sostituisco manualmente un numero in una sola e qualunque riga, cliccando su una cella ed inserendo il numero da tastiera, si colora la cella corrispondente alla somma di quella riga;
se invece eseguo la sostituzione di un numero in tutte le colonne del range tramite il menù modifica-sostituisci non succede niente.
cosa e dove devo modificare il codice, per ottenere quest'ultimo risultato?
forse chiedo troppo, sono sicuro che ci vuole tempo ed impegno per elaborare tutti i codici che mettete a disposizione di noi utenti;
apprezzo moltissimo la vostra disponibilità
P.S. non riesco a scaricare il file per il solito problema, riproverò ancora.
grazie per il vostro contributo
miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: cambiare colore celle

Postdi Flash30005 » 07/01/10 21:58

Se fai sostituisci un valore alla volta otterrai ugualmente la variazione
se invece utilizzi la funzione sostituisci tutto non potrai chiaramente avere la colorazione dell'ultimo valore anche perché, in questo caso, il sostituisci tutto, avviando la sostituzione da una cella intermedia nell'area (es D10), la funzione ricomincerà la ricerca dalla cella A1 che in effetti non risulterebbe l'ultimo valore variato ma solo l'ultimo trovato.
Ma spiega meglio la tua esigenza e le operazioni che fai,
dove prendi i dati che sostituiscono i valori nell'area A1:Jxx e la necessità di avere solo l'ultimo valore e non tutti i valori variati in quell'unica operazione.
Affinché, a secondo di cosa vorresti ottenere, si possa trovare la soluzione più appropriata.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cambiare colore celle

Postdi miko » 08/01/10 09:50

buona giornata a tutti;
al fine di una migliore comprensione della mia richiesta credo sia opportuno che allego 2 piccoli file, ridotti nella quantità di valori che contengono;
questo anche perchè il codice, cambiare colore celle, si può adattare ad entrambi i file.
nel primo file, sotto la colonna archivio sono inserite alcune combinazioni del winforlife, mentre nelle colonne L ed M sono inseriti i valori min e max delle somme.
inizialmente cancellate il contenuto di L ed M, poi premete il pulsante calcola;
la macro collegata esegue la sostituzione dei numeri inseriti nella prima combinazione con spazio;
dopo esegue la somma dei numeri rimasti nelle altre combinazioni e pone il min e max nella cella L1 ed M1;
poi ripristina l'archivio, e passa alla seconda combinazione e ripete lo stesso calcolo.
le combinazioni che ho inserito, per brevità, sono 16;
provate ora ad aggiungere altre combinazioni di numeri da 1 a 20, e ripetete il calcolo;
vi accorgerete che, se avete memorizzato i dati in L ed M, eseguendo il calcolo alcuni valori in L ed M sono cambiati.
all'aumentare delle righe diventa quindi noioso e lungo il confronto tra i valori ottenuti da un calcolo ed il successivo.
per questo avevo pensato a colorare le celle in L ed M per visualizzare con immediatezza dove ci sono state variazioni.
per il secondo file invece il calcolo concettualmente è identico, cambia solo il fatto che determina la frequenza dei terni presenti nelle combinazioni e poi li ordina dal più frequente al meno frequente.
anche perchè essendo i terni 1140, non si può verificare dove ci sono state variazioni se non con un confronto.
non essendo esperto del vba ho pensato a colorare le celle, ma forse vi è un metodo più rapido e semplice pre raggiungere lo stesso risultato.
ho pensato ad un confronto oppure ad isolare, cioè incollare in un altra parte del foglio quelle combinazioni ed i rispettivi valori in cui si sono avute variazioni, ma non so quale sia il metodo migliore.
il file zippato lo trovate qui:
http://www.filedropper.com/sommewinforlife
grazie per la vostra comprensione e per i suggerimenti;
saluti
miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: cambiare colore celle

Postdi miko » 08/01/10 10:17

ciao, ho dimenticato di informarvi che forse questo problema è legato all'altro mio post
" frequenza terni " del 04/01/10 12:15.
grazie buona giornata
miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: cambiare colore celle

Postdi Flash30005 » 08/01/10 18:42

Per quanto riguarda il file SommeWinForLife.xls
così come postato va in loop in quanto non trova la riga 17 (vuota) e quindi è preferibile modificare la macro per renderla adattabile alle righe e con qualche accorgimento è anche più veloce
Codice: Seleziona tutto
Sub macroS()
Application.ScreenUpdating = False
Application.Calculation = xlManual
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
UD = Worksheets("Foglio1").Range("M" & Rows.Count).End(xlUp).Row
Range("P3:Q" & UD).ClearContents
    Range("L3:M" & UD).Copy
    Range("P3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False

Range("L3:M" & UD).ClearContents
Range("A1").Select
StartArr = Range("A3:J" & UR) ' << dimensionare A1:J1000
For r = 3 To UR ' << To 1000
    AppoArr = Range("A" & r & ":J" & r)
    Range("A" & r & ":J" & r).ClearContents
    For x = 1 To 10 ' << 10 colonne da A a J
        With Range("A3:J" & UR) ' << dimensionare A1:J1000
            Set f = .Find(AppoArr(1, x), LookIn:=xlValues, lookat:=xlWhole)
            If Not f Is Nothing Then
                firstAddress = f.Address
                Do
                    Range(f.Address).ClearContents
                    Set f = .FindNext(f)
                Loop While Not f Is Nothing
            End If
        End With
    Next x
For r1 = 3 To UR ' << To 1000
    Cells(r1, 11) = Application.WorksheetFunction.Sum(Range("A" & r1 & ":J" & r1))
    If Cells(r1, 11).Value = 0 Then Cells(r1, 11).Value = ""
Next r1
   
    Cells(r, 12) = Application.WorksheetFunction.Min(Range("K1:K" & UR)) ' K1000
    Cells(r, 13) = Application.WorksheetFunction.Max(Range("K1:K" & UR)) ' K1000
    Range("K3:K" & UR).ClearContents
Range("A3:J" & UR) = StartArr  ' << dimensionare A1:J1000

Next r
Range("A3:J" & UR) = StartArr  ' << dimensionare A1:J1000
Range("K3:K" & UR).ClearContents
Call Confronta
Range("A1").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sub Confronta()
UD = Worksheets("Foglio1").Range("M" & Rows.Count).End(xlUp).Row
For CC = 12 To 13
    For RR = 3 To UD
        If Cells(RR, CC).Value <> Cells(RR, CC + 4).Value Then
            Cells(RR, CC).Interior.ColorIndex = 3
        Else
            Cells(RR, CC).Interior.ColorIndex = 45
        End If
    Next RR
Next CC
End Sub


Adesso mi domando ma quante righe hai effettive?
944?

Prova questa macro e dimmi come funziona ora
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cambiare colore celle

Postdi miko » 08/01/10 20:18

ciao, grazie flash
la macro per le somme ovviamente funziona egregiamante.
si, in effetti ci sono molte righe, fino ad oggi 1325, ed il numero è destinato ad aumentare;
ogni giorno ci sono 13 estrazioni;
anche la tua macro impiega tempo per terminare il calcolo, ma penso sia dovuto non alla complessità del calcolo ma alla ripetizione della stessa routine per un elevato numero di righe.
non essendo esperto di excel ho pensato solo questo metodo per ottenere dei risultati;
forse ci sarà qualche altra procedura per raggiungere lo stesso fine.
grazie per il tuo impegno
saluti
miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: cambiare colore celle

Postdi Flash30005 » 08/01/10 20:59

Ho analizzato la tua macro e devo dire che è "egregia" per il "lavoro" che svolge, ma a cosa serve? :eeh:
Fa un'analisi che non pensavo occorresse per calcolare la somma minima e massima di un gruppo di numeri.
Finora ho sempre pensato che la somma dei numeri in una estrazione fosse la somma dei numeri di quella specifica estrazione e la somma minima sia la somma dei numeri costituenti un gruppo avente come valore il più basso di tutto l'universo dei numeri in esame quindi, nel caso di winforlife, la somma minima ottenibile sia 55 (1+2+3+4+5+6+7+8+9+10) e la somma massima sia 155 (11+12+13+14+15+16+17+18+19+20) a questo punto non capisco perché si debba analizzare ogni riga estratta e confrontarla con le precedenti o successive in quanto il valore della somma di quella riga estratta sarà sempre e solo lo stesso indipendentemente da quante estrazioni sono state effettuate.
Dopo centinaia di estrazioni posso fare una statistica della maggior frequenza (o ritardo) dei vari valori di somma delle estrazioni e definire le loro frequenze, a questo punto "interessante" sarebbe elaborare un sistema di n colonne (da giocare) che abbia per somma 85, oppure un range di valori di somma compresa, per esempio, tra 82 a 87 ma questo è un altro discorso.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cambiare colore celle

Postdi miko » 08/01/10 22:05

ciao,
grazie per i complimenti;
ad onor del vero non sono io che merito questo, forse per il mio impegno nella ricerca e studio, ma il merito va a tutti coloro che, come te, sono disponibili.
per brevità molto spesso si trascura la chiarezza delle richieste e delle esigenze.
credo di dovere delle scuse e che sia opportuno precisare la finalità della macro somma, in modo da comprendere anche la mia richiesta.
hai, infatti, ragione, mi riferisco all'ultima parte del tuo messaggio in questo topic, quando parli di somme, min e max e di sistema;
ma la mia è una nuova condizione che ho "inventato" da porre sulle combinazioni di un sistema, che ora ti spiego.
supponiamo di voler giocare un certo numero di conbinazioni, nelle quali siano presenti dei numeri fissi, ad esempio 1-2-3.
tu sai certamente che tutte le combinazioni del sistema che andreno ad elaborare avranno sempre questi numeri.
i 7 rimanenti numeri che compongono la combinazione saranno compresi tra 4-20;
poichè nelle combinazioni i numeri si ripetono, la "macro somma" determina quale è la somma che generalmente realizzano questi 7 numeri, cioè quale è il range in cui variano le somme dei rimanenti numeri.
in pratica è lo stesso concetto che tu hai espresso a proposito delle somme dei numeri delle intere combinazioni ma applicato ad un range ristretto di numeri.
spero che possiate comprendere questa mia elucubrazione.
grazie ancora per i tuoi contributi
saluti
miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44

Re: cambiare colore celle

Postdi Flash30005 » 08/01/10 23:22

Ancora non afferro bene la relazione che c'è tra
"il togliere i dieci numeri di una estrazione alle altre estrazioni per calcolare la somma dei numeri rimanenti in queste ultime"
e il concetto che hai appena espresso della somma dei 7 numeri rimanenti compresi tra 4 e 20
ma questo poco importa l'importante è che tu abbia ben valutato la redditività di giocare a winforlife invece che in altri giochi
Se ti può interessare in questo link nel mio post del 10/10/09 ore 18:31 ho ampiamente trattato questo argomento.

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: cambiare colore celle

Postdi miko » 10/01/10 12:51

ciao;
ho trovato molto interessante il topic, trasformare 9480 combinazioni di 5 numeri in 10 num.del 10/10/09 17:31, che hai suggerito;
desidero esprimerti la mia gratitudine ed il mio plauso non solo per il topic in questione ma anche per altri tuoi messaggi su altri argomenti.
grazie per i tuoi consigli, che non si limitano al vba.
estenderei la mia gratitudine anche ad anthony, che non è da meno.
credo che noi utenti siamo fortunati ad avervi incontrato "virtualmente".
per quanto riguarda me, ho pochi vizi, e tra questi non è compreso il gioco, e qualche hobbies, tra i quali da qualche tempo il vb6, vba e html.
non intendo elaborare un programma che dia false speranze di vincita, a questo ci pensano i tanti software a pagamento che si trovano in rete;
secondo me non esiste un metodo-software per vincere;
alle componenti decisionali di cui parli nel topic aggiungerei una buona dose di fortuna.
la mia professione non necessita l'uso di excel, e non conosco problematiche legate ad altre attività, come fatture ordini etc.;
per capire cerco allora di applicare il vba ad argomenti per me di facile comprensione;
ti ringrazio anche per avermi avvisato della modifica che hai apportato al codice, di cui trattasi in questo topic;
avevo infatti notato che non colorava le celle, e non avevo visto che avevi cambiato il codice.
concludo augurandovi una serena domenica
saluti miko
windows 10 - office 2013
miko
Utente Senior
 
Post: 520
Iscritto il: 29/12/09 10:44


Torna a Applicazioni Office Windows


Topic correlati a "cambiare colore celle":


Chi c’è in linea

Visitano il forum: Nessuno e 62 ospiti