Come sommare delle celle in base al colore

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Giulio De Palma
00sabato 13 agosto 2016 21:46
Buonasera a tutti, ho la necessita di effettuare il conteggio delle ore di guida o disponibilità o riposo in base alla colorazione delle celle, ho suddiviso le ventiquattro ore in sottoclassi da 5 minuti quindi ogni cella della sottoclasse vale 5 minuti pertanto un'ora ha 12 celle, pertanto alla fine della riga devo poter sommare il valore in ore e minuti in base al colore delle celle, non so se la cosa possa essere possibile, spero in un Vostro aiuto. allego file esempio per maggiore comprensione.
Grazie
alfrimpa
00sabato 13 agosto 2016 22:23
Ciao Giulio

Excel non dispone di una funzione che conti le celle in base al loro colore per cui per far questo occorre usare il vba

Function ContaColorate(MyRange as Range)
Dim cel as Range
For Each cel in MyRange
     If cel.Interior.ColorIndex = 6 Then
             ContaColorate = ContaColorate + 1
     End If
Next cel 
End Function


Sul foglio basta scrivere

=ContaColorate(A1:D20)

e verrà restituito il numero delle solo celle dell'intervallo A1:D20.

Questo è un esempio molto semplice e banale che va adattato al tuo caso (ora sono fuori e non ho il pc e non ho visto il tuo file e ho scritto a memoria).

Diverso è il discorso se il colore riviene da formattazione condizionale.

In questo caso la precedente function non funzionerebbe perchè il vba non riconosce i colori dati da f.c.

In questo caso si dovrebbe (mediante colonna d'appoggio) utilizzare il criterio inserito nella f.c. e far contare i VERO o i FALSO.

Non so se sono stato chiaro.
Giulio De Palma
00sabato 13 agosto 2016 23:02
Grazie per l'intervento Alfrimpa... Io non avendo pratica di VBA avrei bisogno mi maggiore aiuto, chiarisco che i colori sono tre e che essi non provengono da formattazione condizionale.....
rollis13
00domenica 14 agosto 2016 00:14
Visto che alfrimpra non è in linea ti indico come devi fare:

1) premi i tasti Alt+F11 per accedere al vba
2) in alto dal menu Inserisci scegli Modulo
3) doppio click sul Modulo1 per aprilo
4) nel riquadro grande vuoto incolla il codice copiato dal post di alfrimpa

Ora nel foglio di Excel in una cella a tua scelta copia la formula che ti ha indicato che provvede a contare le celle gialle (6). Aggiusta anche le coordinate in base alle tue esigenze, credo:

=ContaColorate(B11:KC42)

Per effettuare il conteggio del rosso (3) devi cambiare in questa riga di codice nel vba il 6 in 3, così:

If cel.Interior.ColorIndex = 3 Then

Per altri colori bisogna rilevare l'esatto codice corrispondente che a volte è diverso in base alla versione di Excel che hai in uso (es. verde (4) ).
GioCC
00domenica 14 agosto 2016 08:05
E se il colore venisse dalla formattazione condizionale, come andrebbe compilata la colonna d'appoggio e come cambierebbe la macro?
Giulio De Palma
00domenica 14 agosto 2016 11:20
Grazie anche a te Rollis, ma purtroppo ho fatto come mi avete detto ma non mi restituisce nessun conteggio ovvero il risultato della formula è 0. Vi chiedo quando potrete di verificare Voi stessi il funzionamento del codice, altra cosa, io ho bisogno di conteggiare le celle rosse, gialle e nere alla fine della riga di competenza nelle specifiche colonne come ho riportato nel file di esempio per poi poter totalizzare il tutto in basso alla fine del prospetto, quindi mi chiedo se bisogna variare il codice.
Saluti
alfrimpa
00domenica 14 agosto 2016 12:31
Giulio la function che ti ho scritto conteggia sel sole celle gialle; se vuoi contare le nere devi cambiare il 6 con 1 e le rosse devi inserire 3.

Forse è il caso di fare tre function diverse ciascuna per un colore ovviamente cambiandone il nome es. ContaTempiGuida, ContaDisponibilità etc.

Ora sono in vacanza e non posso aprire il file.

Comunque nella function che ti ho scrittto se metti un intervallo con celle gialle la funzione te le deve contare.
dodo47
00domenica 14 agosto 2016 13:38
Ciao
propongo una macro in allegato.
E' semplificabile ma tant'è...
Il pulsante è in kd1

saluti

Edit nota: il formato celle delle colonne da kd > kf deve essere:
37:30:55 e così pure le tre celle nelle quali ci sono i totali.

Utilizzare l'allegato del post seguente
dodo47
00domenica 14 agosto 2016 16:52
Allegato corretto
Giulio De Palma
00domenica 14 agosto 2016 18:02
Grazie Dodo! sembra che funzioni come mi aspettavo, ho notato il totale ore a monte delle colonne. domani inizio ad inserire i dati ..
Grazie !!!!
ringrazio Alfrimpa che nonostante le ferie mi ha dato le sue indicazioni, che comunque mi piacerebbe vedere ...
ringrazio Rollis per il suo intervento..
Buon Ferragosto a tutti....!!!!!
dodo47
00lunedì 15 agosto 2016 17:11
Re:
Giulio De Palma, 14/08/2016 18.02:

... ho notato il totale ore a monte delle colonne....



Si, è più comodo, ma attento che ho sbagliato nel copiare le formule di SOMMA, che fanno riferimento tutte alla stessa colonna. Volendo puoi implementare la macro e farle scrivere direttamente dalla sub.

saluti
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 06:43.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com