Anzeige
Archiv - Navigation
1268to1272
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Farbige Zellen zählen (VBA)

Farbige Zellen zählen (VBA)
Holger
Hallo zusammen,
ich möchte in einer Zelle anzeigen lassen:
von einem bestimmten Bereich die Anzahl der Zellen einer bestimmten Hintergrundfarbe
- und zwar automatisch sobald eine Zelle neu eingefärbt/verändert wird.
Das bekomm ich mit dem Code unten zwar teilweise hin,
aber leider erkennt das "Change"-Ereignis nicht wenn die Farbe der Zelle geändert wird,
das heißt eine Aktualisierung findet nicht automatisch statt.
Und da komm ich mit meinem VBA-Wissen nicht weiter...
Kann mir bitte jemand helfen?
Vielen Dank.
Grüße Holger
Private Sub Worksheet_Change(ByVal Target As Range)
Dim anzahl As Long
Dim Zelle As Range
anzahl = 0
For Each Zelle In Range("b1:b500")
If Zelle.Interior.ColorIndex = 1 Then
anzahl = anzahl + 1
End If
Next Zelle
Cells(1, 1).Value = anzahl
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Farbige Zellen zählen (VBA)
30.06.2012 18:01:33
Hajo_Zi
Hallo Holger,
Farbveränderung löst keine Aktion aus.
Du könntest die Fabe auslösen per Formel, dann würde Calculate ausgelöst.

AW: Farbige Zellen zählen (VBA)
30.06.2012 18:01:35
Hajo_Zi
Hallo Holger,
Farbveränderung löst keine Aktion aus.
Du könntest die Fabe auslösen per Formel, dann würde Calculate ausgelöst.

AW: Farbige Zellen zählen (VBA)
30.06.2012 18:28:46
Rolf
Hallo Holger,
Hajo hat leider recht. Als (unbefriedigende) Alternative hätte ich noch folgendes anzubieten:
Da du zwecks Änderung der Hintergrundfarbe ohnehin die entsprechende Zelle aktiviert hast, gibst du nach der Farbänderung hintereinander die Tastenkombinationen Strg+C und Strg+V ein. Das rüttelt Worksheet_Change wach.
Aber, wie gesagt, ziemlich unbefriedigend. Ich hab' mal versucht diese Strg+C/Strg+V-Geschichte als Copy/Paste in deinen Code zu integrieren, bin aber gescheitert. Vielleicht hat Hajo oder sonst wer eine Idee. Ich stelle die Frage mal wieder auf "noch offen".
Gruß, Rolf
Anzeige
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
Anzeige

150 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige