Discussion:
cellen met bepaalde kleur optellen
(te oud om op te antwoorden)
Gerard
2006-11-27 15:40:02 UTC
Permalink
Hoe kan ik een formule maken waarin ik de gegevens van cellen met een
bepaalde achtergrondkleur bij mekaar optel ?
vb : Als in het bereik a1 tot A50 cellen voorkomen met een grijze
achtergrond, tel dan deze cellen bij mekaar op.
Iets zoals "som.als(a1:a50;"achtergrondkleur = grijs")

Graag een mailtje met eventuele oplossing.
Bedankt bij voorbaat,
Gerard
Jeroen
2007-02-23 21:26:58 UTC
Permalink
Dit kan volgens mij alleen in VBA

Doe het volgende in Excel:
alt + F11 (VBA wordt geopend)
Invoegen>Modulen

Plak vervolgens de volgende code in de module:
'-------------------------------------------------------------------------------------------
Option Explicit
Dim myRange As Range
Dim cell As Range
Dim r, c, i As Integer
Dim nr As Long

Sub KleurenTellen()

'de laatste active cel wordt opgezocht
ActiveCell.SpecialCells(xlLastCell).Select
ActiveCell.Name = ("laatste")

'bepaalt het totale bereik van alle cellen
Set myRange = Range("A1:laatste")

'de grote van de array wordt bepaalt (rij en kolom)
ReDim rKleur(myRange.Rows.Count, myRange.Columns.Count) As Integer
ReDim Kleur(i) As Integer

Range("A1").Select

'------------------------------------------------------------

For r = 1 To myRange.Rows.Count
For c = 1 To myRange.Columns.Count

'de array rKleur wordt gevuld met gegevens
rKleur(r, c) = myRange.Cells(r, c).Interior.ColorIndex

'elke aparte kleur wordt in de 2e array Kleur vastgelegd
If Kleur(i) <> rKleur(r, c) Then
For i = 0 To UBound(Kleur)
If Kleur(i) <> rKleur(r, c) Then

Else
Kleur(i) = rKleur(r, c)

GoTo 10
End If
Next i

i = i - 1
Kleur(i) = rKleur(r, c)
ReDim Preserve Kleur(UBound(Kleur) + 1)
Debug.Print Kleur(i)

End If
10
Next c
Next r

ReDim Preserve Kleur(UBound(Kleur) - 1)

'--------------------------------------------------------

ActiveCell.Offset(myRange.Rows.Count + 1, 0).Range("A1").Select

'de aparte kleuren worden weergegeven en het aantal wordt geteld.
For r = 0 To UBound(Kleur)
ActiveCell.Interior.ColorIndex = Kleur(r)
If ActiveCell.Interior.ColorIndex = Kleur(r) Then
For Each cell In myRange
If cell.Interior.ColorIndex = Kleur(r) Then
nr = nr + 1
ActiveCell.Offset(0, 1).Value = nr
End If
Next
End If
nr = 0
ActiveCell.Offset(1, 0).Select
Next r

End Sub

'-----------------------------------------------------------------------------------------

Sla de module open en slaat VBA af. In de gewone excel omgeving start je de
macro (alt +F8).

veel suc6

Jeroen
Post by Gerard
Hoe kan ik een formule maken waarin ik de gegevens van cellen met een
bepaalde achtergrondkleur bij mekaar optel ?
vb : Als in het bereik a1 tot A50 cellen voorkomen met een grijze
achtergrond, tel dan deze cellen bij mekaar op.
Iets zoals "som.als(a1:a50;"achtergrondkleur = grijs")
Graag een mailtje met eventuele oplossing.
Bedankt bij voorbaat,
Gerard
Loading...