Condividi tramite

SOMMA.SE CON FORMATTAZIONE COME CRITERIO

Anonimo
2017-12-17T21:10:57+00:00

Salve.

Vorrei sommare le celle di un intervallo, ma solo quelle con i testi di colore rosso. Come posso fare?

Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2017-12-17T22:04:22+00:00

Ciao Vito,

Vorrei sommare le celle di un intervallo, ma solo quelle con i testi di colore rosso. Come posso fare?

Prova la seguente UDF (funzione utente):

'=========>>

Option Explicit

'--------->>

Public Function SumByColor(IntervallaDaSommare As Range, _

                           CellaColore As Range) As Double

    Dim rCell As Range

    Dim dSum As Double

    Dim iColore As Long

    Application.Volatile

    iColore = CellaColore.Font.Color

    For Each rCell In IntervallaDaSommare.Cells

        With rCell

            If .Font.Color = iColore Then

                dSum = dSum + .Value

            End If

        End With

    Next rCell

    SumByColor = dSum

End Function

'<<=========

Il primo argomento della funzione è l'intervallo da sommare; il secondo argomento è una cella che definisce il colore di interesse e, volendo, può trovarsi nell'intervallo da sommare.

===

Regards,

Norman

La risposta è stata utile?

2 persone hanno trovato utile questa risposta.
0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2017-12-17T22:55:15+00:00

    Ciao Vito,

    Per rendere la funzione più flessibile, in modo che possa sommare facoltativamente le celle dell'intervallo di interesse in base al colore dello sfondo anziché al colore del testo, prova la seguente modifica:

    '=========>>

    Option Explicit

    '--------->>

    Public Function SumByColor(IntervallaDaSommare As Range, _

                                CellaColore As Range, _

                                Optional bInterior As Boolean) _

                                As Double

        Dim rCell As Range

        Dim dSum As Double

        Dim iColore As Long

        Application.Volatile

        With CellaColore

            If bInterior Then

                iColore = .Interior.Color

            Else

                iColore = CellaColore.Font.Color

            End If

        End With

        For Each rCell In IntervallaDaSommare.Cells

            With rCell

                If bInterior Then

                    If .Interior.Color = iColore Then

                        dSum = dSum + .Value

                    End If

                Else

                    If .Font.Color = iColore Then

                        dSum = dSum + .Value

                    End If

                End If

            End With

        Next rCell

        SumByColor = dSum

    End Function

    '<<=========

    Con questa versione, si trova un terzo argomento facoltativo bInterior****del tipo booleano. Se nessun valore, oppure un valore di FALSO, venga precisato, la funzione restituirà la somma delle celle a secondo del colore del loro testo; sei invece il valore VERO venga precisato, la funzione sommerà le celle a secondo del colore dello sfondo:

          

    ===

    Regards,

    Norman

    La risposta è stata utile?

    2 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2017-12-18T12:12:16+00:00

    Ciao Vito,

    Grazie mille Norman!

    Prego!

    Per chiudere questo thread, vorrei chiederti gentilmente di contrassegnare la mia risposta come Risposta preferita. 

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-12-18T11:04:31+00:00

    Grazie mille Norman!

    La risposta è stata utile?

    0 commenti Nessun commento