AW: Farbige Zellen zählen (VBA)
01.07.2012 00:27:51
fcs
Hallo Holger, Hallo Rolf,
ich bin kein großer Freund von Farbenzählereien. Besser ist es, in einer separaten Spalte ein "x" einzutragen/zu löschen, um eine Zeile/Zelle zu kennzeichnen. Dies kann man ggf. per Mausklicks realisieren. Die Farbgebung kann man dann ggf. noch per bedingter Formatierung ergänzen.
So ist die Kennzeichnung "hardverdrahtet" und kann auch für andere Auswertungen (Autofilter/Formeln) verwendet werden.
Man kann die Berechnung auch über das Worksheet-Selection-Change-Ereignis steuern. Dann ist man bei der Farbzählerei maximal einen Mausklick vom Ergebnis entfernt.
Dazu in einem allgemeinen Modul der Datei folgende Benutzerdefierte Funktion einrichten:
Public Function Farbenzaehlen(ZellBereich As Range, lngColorIndex As Long) As Long
'Funktion zählt Zellen im Zellbereich mit dem angegebenen Colorindex
Dim Zelle As Range
For Each Zelle In ZellBereich
If Zelle.Interior.ColorIndex = lngColorIndex Then
Farbenzaehlen = Farbenzaehlen + 1
End If
Next Zelle
End Function
Unter dem Tabellenblatt folgenden Code für das Worksheet
'Code im Tabellen-Modul
Option Explicit
Private lastCell As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("B1:B500")) Is Nothing Then
If Not lastCell Is Nothing Then
Cells(1, 1).Calculate
Set lastCell = Nothing
End If
Else
Cells(1, 1).Calculate
Set lastCell = Target.Range("A1")
End If
End Sub
In der Tabelle in der Zelle in der gezählt werden soll folgende Formel:
=Farbenzaehlen($B$1:$B$500;1)+JETZT()*0
Dabei sind der Zellbereich und der ColorIndex der Zellfüllfarbe entsprechend anzupasssen.
Gruß
Farnz