Oggetto:sommare celle
Newsgroups:microsoft.public.it.office.excel
Data:2004-09-01 02:12:02 PST
http://www.google.it/groups?threadm=ch432h%24ik%241%40grillo.cs.interbusiness.it
--
Tiziano Marmiroli
Microsoft MVP - Office
Grazie della risposta,ma il mio quesito è posto in base al colore
riempimento e non al colore del testo. Come dovrei modificare quella macro?
Grazie
Con la formula CountColor(B1;B3:B9) riesco a contare le celle con un
determinato colore in un intervallo da me definito.
Ora vorrei che il risultato restituito si riferisse esclusivamente al codice
prodotto da me impostato.
ES. In una colonna ci sono 10 differenti codici di prodotti con differenti
colori di riempimento, con la formula scritta sopra ho il numero totale di
prodotti con un determinato colore di riempimento,ma come fare per escludere
tutti i prodotti che non mi interessano ed avere solo quello impostato?
Grazie
> Con la formula CountColor(B1;B3:B9) riesco a contare le celle con un
> determinato colore in un intervallo da me definito.
> Ora vorrei che il risultato restituito si riferisse esclusivamente al codice
> prodotto da me impostato.
> ES. In una colonna ci sono 10 differenti codici di prodotti con differenti
> colori di riempimento, con la formula scritta sopra ho il numero totale di
> prodotti con un determinato colore di riempimento,ma come fare per escludere
> tutti i prodotti che non mi interessano ed avere solo quello impostato?
Puoi modificarla cosě:
'-----------------------
Public Function ContaCodici(rColor As Range, rSumRange As Range)
'Conta le celle aventi motivo e valore di una cella data
Dim rCell As Range
Dim iCol As Integer
Dim vCodice
Dim vResult
iCol = rColor.Interior.ColorIndex
vCodice = rColor.Value
For Each rCell In rSumRange
If rCell.Interior.ColorIndex = iCol And rCell.Value = vCodice Then
vResult = vResult + 1
End If
Next rCell
ContaCodici = vResult
End Function
'-----------------------
Grazie,la tua modifica funziona perfettamente. L'unica pecca sta nel fatto
che nella pagina di riepilogo devo creare 3 celle con lo stesso nome ma con
colore differente. Esiste un modo (magari un'altra piccola modifica) in modo
da "prendere" il testo da una cella specificata e il colore da un'altra?
In questo modo creerei una sola cella con valore X e poi 3 celle con i soli
colori differenti che mi servono per la ricerca.
Grazie mille
> Grazie,la tua modifica funziona perfettamente. L'unica pecca sta nel fatto
> che nella pagina di riepilogo devo creare 3 celle con lo stesso nome ma con
> colore differente. Esiste un modo (magari un'altra piccola modifica) in modo
> da "prendere" il testo da una cella specificata e il colore da un'altra?
> In questo modo creerei una sola cella con valore X e poi 3 celle con i soli
> colori differenti che mi servono per la ricerca.
Non mi pare necessario. Se devi 'contare' un solo codice alla volta ti
basta scrivere nelle 3 celle 'colorate' una formula tipo: =$F$1
In tal modo ti basta aggiornare il valore di F1.
Se invece hai effettivamente esigenze piů complesse puoi modificare la
funzione cosě:
'-----------------------
Public Function ContaCodici(rCodice As Range, rColor As Range, rSumRange As Range)
'Conta le celle aventi motivo e valore di celle date
Dim rCell As Range
Dim iCol As Integer
Dim vCodice
Dim vResult
iCol = rColor.Interior.ColorIndex
vCodice = rCodice.Value
For Each rCell In rSumRange
If rCell.Interior.ColorIndex = iCol And rCell.Value = vCodice Then
vResult = vResult + 1
End If
Next rCell
ContaCodici = vResult
End Function
'-----------------------
Controllala bene perchč ho fatto poche prove.
Perfetto! Grazie mille. Ultima cosa,come avrai capito non sono molto pratico
di excel, se volessi contare il valore X di un determinato colore su piů di
un foglio?
La mia formula al momento č
=ContaCodici1(A3;$B$1;OTTOBRE!B3:B1000)
Se volessi inserire anche Settembre?
Ho provato con:
=ContaCodici1(A3;$B$1;OTTOBRE!B3:B1000&SETTEMBRE!B3:B1000)
ma non va.
Grazie
> Perfetto! Grazie mille. Ultima cosa,come avrai capito non sono molto pratico
> di excel, se volessi contare il valore X di un determinato colore su piů di
> un foglio?
> La mia formula al momento č
>
> =ContaCodici1(A3;$B$1;OTTOBRE!B3:B1000)
>
> Se volessi inserire anche Settembre?
>
> Ho provato con:
>
> =ContaCodici1(A3;$B$1;OTTOBRE!B3:B1000&SETTEMBRE!B3:B1000)
>
> ma non va.
La funzione somma accetta piů intervalli.
Es. =SOMMA(OTTOBRE!B3:B1000;SETTEMBRE!B3:B1000)
La funzione ContaCodici1 invece accetta un solo intervallo. Quindi se
devi contare un valore in celle non consecutive devi per forza usare:
=ContaCodici1(A3;$B$1;OTTOBRE!B3:B1000)+ContaCodici1(A3;$B$1;SETTEMBRE!B3:B1000)
Mi permetto di disturbarti per l'ennesima volta...
Tutto funziona perfettamente, l'unico problema è che i dati nel foglio di
riepilogo non si aggiornano automaticamente. Voglio dire che se cambio il
colore di una cella il valore che dovrebbe aggiornarsi resta
immutato,cliccandoci sopra e facendo invio il valore si aggiorna
correttamente. Come posso risolvere questo?
Grazie ancora.
> Tutto funziona perfettamente, l'unico problema č che i dati nel foglio di
> riepilogo non si aggiornano automaticamente. Voglio dire che se cambio il
> colore di una cella il valore che dovrebbe aggiornarsi resta
> immutato,cliccandoci sopra e facendo invio il valore si aggiorna
> correttamente. Come posso risolvere questo?
Mi pareva strano non te ne lamentassi! :-)
AFAIK non c'č una soluzione. Il ricalcolo avviene quando vengono
modificati i valori. Dopo esser intervenuto sul colore puoi forzare il
ricalcolo usando F9.
A causa di problemi di questo tipo e della scarsa chiarezza č
decisamente sconsigliato effettuare calcoli basandosi sulla
formattazione.
Beh č un bel problema :-( Anche perchč forzando il ricalcolo con F9 non
succede nulla,anche chiudendo Excel e riaprendolo i dati non si aggiornano.
Non c'č un modo per forzare l'aggiornamento automaticamente? Magari
aggiungendo qualcosa nella macro?