Benvenuto Ospite Cerca | Topic Attivi | Utenti | | Log In | Registra

Una formula in Excel Opzioni
delvallo
Inviato: Friday, February 24, 2006 7:56:40 AM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Desiseravo sapere se esiste una formula che mi permetta di sommare determinate celle con un determinato colore, per esempio tutte quelle gialle o tutte quelle verdi... Grazie attendo buone notizie...
Sponsor
Inviato: Friday, February 24, 2006 7:56:40 AM

 
a10n11
Inviato: Friday, February 24, 2006 10:07:16 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
Sommare il contenuto delle celle colorate o contare quante celle colorate ci sono?
in un caso o nell'altro bisogna ricorrere a VBA o più semplice costruirsi una funzione personalizzata.
questa sotto è una funzione che somma il valore di tutte le celle definite in uno specifico range che hanno un determinato colore:

Function SommaPerColore(Colore As Integer, Rrange As Range)
Dim Cl As Range
Dim Col As Integer
Dim Ttot
Col = Colore
For Each Cl In Rrange
If Cl.Interior.ColorIndex = Col Then
Ttot = Ttot + Cl.Value
End If
Next Cl
SommaPerColore = Ttot
End Function

saluti
Andrea

delvallo
Inviato: Friday, February 24, 2006 10:50:07 AM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Mi serve sommare il contenuto delle celle, come faccio però a fargli distinguere i colori con questa funzione?
delvallo
Inviato: Friday, February 24, 2006 10:51:12 AM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
e poi aggiungo come scelgo la cella dove andrà visualizzato il totale?
a10n11
Inviato: Friday, February 24, 2006 10:59:16 AM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
La funzione che ti ho passato equivale ad avere una normale formula sul foglio

Supponi che nel range A1:a100 hai delle celle colorate di rosso (codice colore 3)
se vuoi il totale di tutte le celle colorate in B1, ti posizioni in cella B1 e scrivi:
=SommaPerColore(3;A1:A100)
ed avrai il totale di tutte le celle con colore 3.
La macro va copiata in un modulo di Vba e la funzione da richiamare la trovi cliccando sul pulsante funzioni nell'elenco "definite dall'utente"
saluti
Andrea

delvallo
Inviato: Friday, February 24, 2006 11:32:15 AM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
ok tutto perfetto, adesso mi serve soltanto sapere i codici colore perchè non li so
c.broggio
Inviato: Friday, February 24, 2006 2:39:16 PM
Rank: Member

Iscritto dal : 10/4/2000
Posts: 0
esegui questa macro ed avrai i numeri dei colori
Public Sub colori()
For i = 1 To 56
Cells(i, 1) = i
Cells(i, 2).Interior.ColorIndex = i
Next i
End Sub

ciao
delvallo
Inviato: Friday, February 24, 2006 2:52:11 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Grazie ad entrambi però ho notato un'imperfezione nella formula considerando il range a1:a10 e le celle a1 a2 a3 sono gialle se metto la formula e le celle sono già gialle la formula funziona correttamente se il colore lo aggiungo dopo o voglio aggiungere con il colore a4 a5 e a6 questi ultimi non me li considera nella somma come mai???
a10n11
Inviato: Friday, February 24, 2006 6:05:30 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve
questa è una limitazione nell'uso di funzioni definite dall'utente. Il ricalcolo automatico non ha influenza su dette funzioni.
Un modo per scavalcare il problema è questo:
aggiungi nella macro prima della dichiarazioni delle variabili questa riga:
Application.Volatile
in questo modo ogni modifica alla formattazione del colore della cella verrà considerata premendo il tasto F9 (calcola)

saluti Andrea

delvallo
Inviato: Monday, February 27, 2006 1:44:23 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
ciao andrea non ho capito dove esattamente collocare il comando...
a10n11
Inviato: Monday, February 27, 2006 2:45:18 PM

Rank: AiutAmico

Iscritto dal : 5/29/2003
Posts: 1,694
salve modifica così:

Function SommaPerColore(Colore As Integer, Rrange As Range)
<font color=red>Application.Volatile</font id=red>
Dim Cl As Range
Dim Col As Integer
Dim Ttot
Col = Colore
For Each Cl In Rrange
If Cl.Interior.ColorIndex = Col Then
Ttot = Ttot + Cl.Value
End If
Next Cl
SommaPerColore = Ttot
End Function

saluti
Andrea

delvallo
Inviato: Monday, February 27, 2006 4:26:20 PM
Rank: Member

Iscritto dal : 10/18/2003
Posts: 14
Ok molto comada grazie sempre di tutto
Utenti presenti in questo topic
Guest


Salta al Forum
Aggiunta nuovi Topic disabilitata in questo forum.
Risposte disabilitate in questo forum.
Eliminazione tuoi Post disabilitata in questo forum.
Modifica dei tuoi post disabilitata in questo forum.
Creazione Sondaggi disabilitata in questo forum.
Voto ai sondaggi disabilitato in questo forum.

Main Forum RSS : RSS

Aiutamici Theme
Powered by Yet Another Forum.net versione 1.9.1.8 (NET v2.0) - 3/29/2008
Copyright © 2003-2008 Yet Another Forum.net. All rights reserved.