Condividi:        

CONTA LE CELLE COLORATE

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

CONTA LE CELLE COLORATE

Postdi paloma » 06/02/10 11:21

Salve,
è da un po' che sto cercando un modo per calcolare quante celle colorate di rosso ci sono in un certo intervallo (es a1:a10) ma non riesco ad utilizzare le formule/codice che trovo in giro. (forse perchè ho ancora excel 2000?)
Sapete aiutarmi per caso? :oops:
Grazie mille!
:)
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Sponsor
 

Re: CONTA LE CELLE COLORATE

Postdi ricky53 » 06/02/10 12:32

Ciao,
con le formule non è possobile farlo.

Devi utilizzare il VBA.
Prova con il registratore di macro a colorare una cella ed utilizza il codice generato, modificandolo, per contare quelle con lo stesso colore chi tu hai scelto.

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: CONTA LE CELLE COLORATE

Postdi paloma » 06/02/10 22:10

La macro registrata per colorare una cella dovrebbe esser questa se non sbaglio:


'
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub


ma adesso che ci faccio??! :roll:
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: CONTA LE CELLE COLORATE

Postdi Anthony47 » 06/02/10 22:21

Tra le cose gia' fatte, guarda anche questa discussione: viewtopic.php?f=26&t=73671
Si usava una colonna adiacente con la formula =GCC(A1) per avere i codici di colore; poi fai Conta.se col codice colore che ti interessa.

Oppure questa:http://www.pc-facile.com/forum/viewtopic.php?f=26&t=72430#p412767 forse piu' vicina alla tua domanda.

Il tutto pero' esamina il colore assegnato alle celle tramite "formattazione" NON formattazione condizionale. Se hai bisogno di contare il colori da formattazione condizionale, devi replicare i calcoli sulla cui base formatti le celle.

Forse invece Excel2007 contiene gia' delle funzioni che lavorano sul "formato" celle.

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

Re: CONTA LE CELLE COLORATE

Postdi Flash30005 » 06/02/10 22:29

ciao Paloma
una macro che fa la somma potrebbe essere questa (purché non formattazione condizionale)
Codice: Seleziona tutto
Sub sommat()
somma = 0
For Each cella In Range("A1:B4")
If cella.Interior.ColorIndex = 3 Then somma = somma + cella.Value
Next
MsgBox somma
End Sub


Varia il Range secondo le tue esigenze.
Al posto di msgbox utilizza la somma per inserirla dove vuoi tipo
Range("C2").value = somma

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: CONTA LE CELLE COLORATE

Postdi paloma » 06/02/10 22:52

Ciao Flash3000!


Sub sommat()
somma = 0
For Each cella In Range("A1:B4")
If cella.Interior.ColorIndex = 3 Then somma = somma + cella.Value
Next
Range("C2").Value = somma

End Sub



così facendo in c2 mi viene fuori 0 anche se metto uno sfondo rosso alla cella a1 o b2 ecc.
possibile? :oops:
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: CONTA LE CELLE COLORATE

Postdi Anthony47 » 06/02/10 22:57

Codice: Seleziona tutto
If cella.Interior.ColorIndex = 3 Then somma = somma + 1

Guarda anche la funzione CCC nel secondo link che ti ho passato prima.

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

Re: CONTA LE CELLE COLORATE

Postdi paloma » 06/02/10 23:09

splendido funziona!!!

a questo punto in c2 ho il risultato della macro e mi chiedo, anzi vi chiedo:
è possibile che la macro si modifichi in automatico ogni volta che viene inserito lo sfondo rosso su una delle celle dell'intervallo? e se non è possibile non mi ricordo più come si fa a mettere in d2 un bel comando carino con scritto per esempio "effettua il calcolo totale alla fine di ogni inserimento/variazione" in modo che l'utente clicchi banalmente sul tasto senza dover lanciare una query ed aggiornando così il dato totale.
grazie mille!! :)
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: CONTA LE CELLE COLORATE

Postdi Anthony47 » 06/02/10 23:16

Disegni un pulsante (lo trovi nella barra degli strumenti Mosulo) e poi gli associ la macro (te ne da' la possibilita' durante la creazione del pulsante).

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

Re: CONTA LE CELLE COLORATE

Postdi paloma » 06/02/10 23:20

grandissimi!
perfetto grazie Anthony47, grazie Flash!
:) :)
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: CONTA LE CELLE COLORATE

Postdi ricky53 » 07/02/10 01:31

Ciao,
per informazione, magari ti può essere utile:
se vuoi puoi, senza utilizzare il pulsante, avere il numero di celle colorate di rosso ad esempio in "A1" con la seguente macro (fornita da Flash) da copiare, ad esempio, nel "Foglio1"
e NON in un modulo o in ThisWorkBook.

Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Somma = 0
    For Each cella In Range("A1:F40")
        If cella.Interior.ColorIndex = 3 Then
            Somma = Somma + 1
        End If
    Next
    [A1] = Somma
End Sub


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: CONTA LE CELLE COLORATE

Postdi paloma » 09/02/10 21:03

ciao Ricky53
scusa ma non mi è chiaro: cosa intendi con "copiare" nel foglio1 e non nel modulo??
devo creare o no una macro?
se si devo per forza andare in crea macro e copiare il codice nel modulo! :!: :eeh:
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: CONTA LE CELLE COLORATE

Postdi Flash30005 » 09/02/10 21:48

Ciao Paloma
Quando sei nell'editor del Vba
hai sulla finestra di sinistra (con office 2003) sia i fogli (Foglio1, Foglio2 etc), un ThisWorkbook e sia i moduli, se già hai creato delle macro al loro interno.
La macro di Ricky va inserita nel Foglio1 o 2 o 3 (dove hai i dati) in quanto si attiva ad ogni variazione di selezione.
Puoi anche mettere nel foglio1 (dove hai i dati) solo il richiamo della macro in questa maniera
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Call sommat   '<<<<< chiamata macro che si trova nel modulo
End Sub

e nel modulo
Codice: Seleziona tutto
Sub sommat()
somma = 0
For Each cella In Range("A1:B4")
If cella.Interior.ColorIndex = 3 Then somma = somma + cella.Value
Next
Range("C2").Value = somma
End Sub

ottenendo lo stesso risultato

Io non so se tu devi fare la somma del contenuto delle cellle colorate oppure sapere solo quante celle sono colorate (come numero) in quest'ultimo caso
devi usare il codice
Codice: Seleziona tutto
If cella.Interior.ColorIndex = 3 Then somma = somma +1

come riportato da Anthony e Ricky
e non
Codice: Seleziona tutto
If cella.Interior.ColorIndex = 3 Then somma = somma + cella.Value


Inoltre non avrai il calcolo immediato alla variazione del colore cella
ma solo al momento che cambierai selezione con click o con invio dopo aver variato il colore.

Fai sapere
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: CONTA LE CELLE COLORATE

Postdi paloma » 10/02/10 12:16

problemino:
ho copiato tutto ma quando clicco su una cella mi compare questa finestra:

"Errore di compilazione:
rilevato nome non univoco: sommat"

può essere per il fatto che ho creato una decina di moduli con lo stesso codice ma con intervalli diversi? :neutral:
paloma
Utente Junior
 
Post: 64
Iscritto il: 29/10/07 09:38

Re: CONTA LE CELLE COLORATE

Postdi Anthony47 » 10/02/10 16:57

Ovviamente non puoi avere tante macro con lo stesso nome (semplificando).

Secondo me ti sei compplicata la vita: usa la funzione CCC (vedi mio link di qualche giorno fa), poi metti tante formule =CCC(RangeDaContare;CellaColore) e sei a posto.

Se vuoi essere certo che il calcolo sia aggiornato, in un Modulo1 inserisci questa macro
Codice: Seleziona tutto
Sub MacroCalc()
    Calculate
End Sub

Poi disegni un pulsante, che chiami Aggiorna, e lo associ a questa singola macro.

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

CONTA LE CELLE COLORATE

Postdi raimea » 05/12/11 12:54

ciao a tutti, 8)
con questa macro (inserita nel foglio)
conto le celle colorare di rosso da 06:t6 e scrivo il risultato in CA6 tutto ok.

Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Somma = 0
    For Each Cella In Range("o6:t6")
        If Cella.Interior.ColorIndex = 3 Then
            Somma = Somma + 1
        End If
    Next
    [ca6] = Somma
End Sub

avrei la necessita di contare anche le "righe" sotto da 07:t7 risultato CA7
poi o8:t8..... fino =1000:t1000 e compilare le relative celle CA
non so' come fare questo.. :oops:
vi ringrazio..
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

CONTA LE CELLE COLORATE

Postdi raimea » 05/12/11 20:33

:D questa vale 10...
penso di esserci riuscito....
ho inserito in un modulo questa:
Codice: Seleziona tutto
Function CountByColor(InRange As Range, _
WhatColorIndex As Integer, _
Optional OfText As Boolean = False) As Long
'
' questa macro serve a contare le celle colorate in un foglio
' con la formula: =COUNTBYCOLOR(O5:T5;3;FALSO)
' 3 e' il rosso
'
Dim Rng As Range
Application.Volatile True

For Each Rng In InRange.Cells
If OfText = True Then
CountByColor = CountByColor - _
(Rng.Font.ColorIndex = WhatColorIndex)
Else
CountByColor = CountByColor - _
(Rng.Interior.ColorIndex = WhatColorIndex)
End If
Next Rng

End Function

poi nella cella ho scritto questa formula:
Codice: Seleziona tutto
=COUNTBYCOLOR(O5:T5;3;FALSO)

e trascinata verso il basso...
NB: il num 3 indica il colore rosso che e' quello da contare
funge.. :idea:
ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Re: CONTA LE CELLE COLORATE

Postdi Anthony47 » 05/12/11 23:35

Diciamo 10 in perseveranza, ma 5- in attenzione: se leggevi bene la discussione avresti tovato (vedi post del 6 feb 2010 sera) questo link: viewtopic.php?f=26&t=72430#p412767 che ti indicava l' uso della funzione CCC (Count Cell Color), ovviamente simile alla CountByColor salvo che lavora per confronto con una cella campione invece che con l' indice di colore.

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

CONTA LE CELLE COLORATE

Postdi raimea » 06/12/11 06:32

:D
ma 5- in attenzione: se leggevi bene la discussione avresti tovato (vedi post del 6 feb 2010 sera) questo link: viewtopic.php?f=26&t=72430#p412767 che ti indicava l' uso della funzione CCC (Count Cell Color)

sono sincero, questo non l'avevo trovato da leggere..
grazie x il suggerimento .
ciao
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

CONTA LE CELLE COLORATE

Postdi raimea » 07/12/11 08:17

:-? un informazione..
ho notato che da quando ho messo questa macro in un modulo
tutto il file e' diventato lentissimo nello svolgere le varie macro
Codice: Seleziona tutto
Function CountByColor(InRange As Range, _
WhatColorIndex As Integer, _
Optional OfText As Boolean = False) As Long
'
' questa macro serve a contare le celle colorate in un foglio
' con la formula: =COUNTBYCOLOR(O5:T5;3;FALSO)
' 3 e' il rosso
'
Dim Rng As Range
Application.Volatile True

For Each Rng In InRange.Cells
If OfText = True Then
CountByColor = CountByColor - _
(Rng.Font.ColorIndex = WhatColorIndex)
Else
CountByColor = CountByColor - _
(Rng.Interior.ColorIndex = WhatColorIndex)
End If
Next Rng

End Function


e' normale ?
e' dovuto prorio a questa ?
grazie.
S.O. win10, Excell 2019
Avatar utente
raimea
Utente Senior
 
Post: 1410
Iscritto il: 11/02/10 07:33
Località: lago

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "CONTA LE CELLE COLORATE":


Chi c’è in linea

Visitano il forum: Nessuno e 31 ospiti