Plaats onderstaande regels in een moduleblad en in je werkblad is dan de formule =som_als_kleur beschikbaar die doet wat je wilt.
'Deze functie in je moduleblad plaatsen, met som_als_kleur(A1;A2:A33) worden alle cellen opgeteld
'in range(a2:a33) met als achtergrond kleur die van a1
' Hou er wel rekening mee dat bij het wijzigen van alleen de kleur van de cel er geen automatische herberekening
' wordt uitgevoerd, dus even op F9 drukken. Bij het wijzigen van een waarde volgt wel een herbereking
' Met deze functie kun je 2 ranges op geven, niet meer zonder de functie aan te passen
Function Som_als_kleur(kleur As Range, Range1, Optional Range2) As Double
Dim objCell As Range
Application.Volatile
Som_als_kleur = 0
'cellTextColour = kleur.Font.Color
cellbackground = kleur.Interior.Color
For Each objCell In Intersect(Range1, _
Range1.Parent.UsedRange)
If Application.IsNumber(objCell.Value) And _
objCell.Interior.Color = cellbackground Then _
Som_als_kleur = Som_als_kleur + objCell.Value
Next objCell
If Not IsMissing(Range2) Then
For Each objCell In Intersect(Range2, _
Range2.Parent.UsedRange)
If Application.IsNumber(objCell.Value) And _
objCell.Interior.Color = cellbackground Then _
Som_als_kleur = Som_als_kleur + objCell.Value
Next objCell
End If
End Function