Condividi:        

colori e variabili

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

colori e variabili

Postdi roccofree » 23/04/08 23:11

salve a tutti
ho una piccola domanda da porvi ma per me molto importante
avrei bisogno di sapere come si fa a far capire, dentro un foglio di Excel, che se una cella è di un determinato colore una qualsiasi variabile aumenti di una unita
tipo:

f = 0
a = 6
b = 3
If Cells(a, b).Interior.Color = RGB(55, 195, 255) Then
f = f + 1
End If

End Sub

ringrazio fin d'ora chi mi potra aiutare
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Sponsor
 

Re: colori e variabili

Postdi Anthony47 » 23/04/08 23:51

Ciao roccofree e benvenuto nel forum.
Vuoi sapere come si fa a verificare se una cella e' di un certo colore o come si fa una struttura If .. Then .. Else? O come si incrementa una variabile?
A rendere la cosa piu' dubbia c' e' la macro, che non dici ne' che cosa dovrebbe fare ne' a che titolo la alleghi, ma che fa un poco di tutto quello che ti chiedo di precisare.

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

Re: colori e variabili

Postdi roccofree » 24/04/08 19:48

vorrei sapere come si fa a sfruttarla
in particolare se quella cella è di un determinato colore allora una variabile possa aumentare di una unita
a me serve sapere se in 5 celle vicine della stessa riga almeno 2 siano dello stesso colore
se cosi fosse,una variabile che all'inizio della macro ho specificato avesse un valore 0, aumentasse di una unita ogni volta che si riscontra una cella che ha come formato il colore specificato e quindi tenere alla fine buone solo quelle righe che hanno 2 o piu celle con il colore da me specificato
nel mio esempio ho indicato una sola cella ma sarebbe
f = 0
a = 6
for b = 3 to 7
If Cells(a, b).Interior.Color = RGB(55, 195, 255) Then
f = f + 1
End If
next b
End Sub

quindi vorrei capire cosa dovrei scrivere dopo il IF
per fare aumentare la variabile f di una unita ogni volta che su una cella specificata
riga 6
colonna 3 to 7
il colore di esse sia del valore indicato

spero stavolta essere stato un po piu chiaro
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Re: colori e variabili

Postdi Anthony47 » 25/04/08 00:48

roccofre ha scritto:a me serve sapere se in 5 celle vicine della stessa riga almeno 2 siano dello stesso colore

In modo non didattico:
1) inserisci questa “macro”
Codice: Seleziona tutto
Function CCC(SCells As Range, TCell As Range) 'Count Cell Color
'SCells e' l' area di celle contigue di cui si vuol verificare il colore
'TCell e' la cella di paragone
'USO:  =CCC(SCells;TCell)
'esempio di formula: =CCC(A1:E1,$F$1)
'
Application.Volatile
TColor = TCell.Interior.ColorIndex
For Each Cella In SCells
If Cella.Interior.ColorIndex = TColor Then CCC = CCC + 1
Next Cella
End Function


2) applichi a una cella libera, es Z1, il colore che vuoi confrontare
3) adiacente alla tua prima riga di dati, in una colonna libera, es in H2, inserisci la formula =CCC(C2:G2;$Z$1)
Avrai cosi’ in H2 il numero di celle del range C2:G2 che hanno lo stesso colore di Z1; se le celle che vuoi controllare non sono C:G modifica la formula di conseguenza.
4) copia la formula di H2 verso il basso per tutte le righe che ti servono.

quindi tenere alla fine buone solo quelle righe che hanno 2 o piu celle con il colore da me specificato
5) Per questo puoi applicare il filtro automatico alla colonna H e filtrare a secondo di cosa devi fare; ad esempio filtri con “2”, oppure (modalita’ Personalizza) “maggiore o uguale a” 2, oppure “minore di” 2, o altre a scelta tra le opzioni disponibili.

Ti avviso che la macro intercetta i colori definiti dalla formattazione di cella, non dalla formattazione condizionale; quest’ ultima e’ intercettabile solo con complicazioni non da poco; almeno fino a excel 2003, per 2007 non so.
Come pure e' utile ricordare che la funzione ricalcola i risultati dopo ogni "modifica" dei dati, ma in excel applicare un colore non e' una "modifica"; se hai dei dubbi, premi F9 per forzare un ricalcolo.

In modo piu’ didattico:
-quella che ti ho proposto tecnicamente non e’ una “macro” ma una “funzione utente”; quindi puo’ essere usata direttamente nella formula (per contro le funzioni devono rispettare vincoli un po’ piu’ stringenti delle macro)
-rispetto alla tua “If Cells(a, b).Interior.Color = RGB(55, 195, 255)” io ho calcolato prima il colore della cella di paragone (TColor=TCell.Interior.ColorIndex) e poi uso quella variabile (TColor) nel confronto; in questo modo mi basta assegnare il colore alla cella target (ad esempio Z1) senza dover scrivere le componenti RGB nel codice vba
-ho usato la proprieta’ ColorIndex (restituisce il numero del colore all’ interno della tavolozza di colori attiva) invece che Color (restituisce il valore delle componenti RGB); ma in questo caso il risultato e' simile.
-ho usato le istruzioni For each /Next per ripetere le operazioni sui componenti elementari (le celle) del range dichiarato
-di conseguenza la “funzione” CCC (che vorrebbe significare Count Cell Color) restituisce quante volte il colore di una cella del range dichiarato ha lo stesso colore della cella di confronto dichiarata.

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

Re: colori e variabili

Postdi roccofree » 25/04/08 16:45

ciao Anthony47
grazie grazie grazie mille!
con le tue indicazioni sono riuscito a compilare la mia macro!
e visto il buon indirizzamento mi vedo "costretto" a chiederti un altra soluzione per un piccolo problema:

devo effettuare una sottrazione
ma ho bisogno che il risultato sia sempre "positivo"
cioè, se faccio 58-27 il risultato mi da 31
ma se faccio 27-58 il risultato mi da -31 ed io invece ho bisogno che il -31 sia 31
in modo che possa dare il valore, in questo caso 31, ad una mia variabile

ti ringrazio fin d'ora se mi potrai ancora aiutare
Rocco
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Re: colori e variabili

Postdi Anthony47 » 26/04/08 00:26

Si chiama “valore assoluto”, si ottiene con la funzione ABS; es
Codice: Seleziona tutto
Variabile = Abs(5-7)

[come puoi intuire, scrivere Abs(7-5) sarebbe stato lo stesso]

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


Torna a Applicazioni Office Windows


Topic correlati a "colori e variabili":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti