Thomas Risi Softwareentwicklung
Addins - Datenbanklösungen - Komponenten - RTDServer - WebServices
CountCellsByColor
Diese Funktion zählt das Vorkommen einer bestimmten Farbe innerhalb eines
Exceltabellenbereiches (Parameter Bereich). Der Parameter Referenz bestimmt,
WIE gezählt wird. Wird hier eine Zahl zwischen 0 und 56 übergeben, wird in den
Zellen (in Bereich) mit dem gleichen Farbindex gezählt. Wird bei Referenz ein Excelbereich
(Zelle) übergeben, wird in allen Zellen gezählt, die dem Farbindex der Referenz
entsprechen. Der Parameter Reason bestimmt WAS gezählt wird. Wenn er 0 ist
oder nicht angegeben wird, dann wird die Anzahl der Zellen mit dem
gleichen Farbindex gezählt. Ist Reason 1, wird der Inhalt aller
Zellen mit dem gleichen Farbindex summiert.
Option Explicit
Public Enum CCBRReason
xlCells = 0
xlCellValues = 1
End Enum
Public Function CountCellsByColor(Bereich As Range, Referenz As Variant, _
Optional Reason As CCBRReason) As Double
Dim i&, n&, cIndex&, c As Range, Sum#: Sum = 0
If TypeOf Referenz Is Excel.Range Then
cIndex = Referenz.Interior.ColorIndex
Else
If Referenz < 0 Or Referenz > 56 Then
Err.Raise 11000, , "Falscher Referenz-Index"
End If
cIndex = Referenz
End If
If IsMissing(Reason) Or Reason = 0 Then
For Each c In Bereich
If c.Interior.ColorIndex = cIndex Then
Sum = Sum + 1
End If
Next c
Else
On Error Resume Next
For Each c In Bereich
If c.Interior.ColorIndex = cIndex Then
Sum = Sum + c.Value
End If
Next c
On Error GoTo 0
End If
CountCellsByColor = Sum
End Function
© 2001 -
by Thomas Risi