Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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.

Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Farbige Zellen zählen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um die Anzahl der farbigen Zellen in Excel zu zählen, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)", wähle "Einfügen" und dann "Modul".

  3. Füge den folgenden Code ein:

    Public Function Farbenzaehlen(ZellBereich As Range, lngColorIndex As Long) As Long
       Dim Zelle As Range
       For Each Zelle In ZellBereich
           If Zelle.Interior.ColorIndex = lngColorIndex Then
               Farbenzaehlen = Farbenzaehlen + 1
           End If
       Next Zelle
    End Function
  4. Verwende die Funktion in Excel: In einer Zelle kannst du nun die folgende Formel verwenden, um die Anzahl der farbigen Zellen zu zählen:

    =Farbenzaehlen(B1:B500;1)

    Ersetze 1 durch den gewünschten ColorIndex.


Häufige Fehler und Lösungen

  • Farbänderung wird nicht erkannt: Das Worksheet_Change-Ereignis wird nicht durch Farbänderungen ausgelöst. Du kannst stattdessen das Worksheet_SelectionChange-Ereignis verwenden, um die Zählung automatisch zu aktualisieren.

  • Formel zeigt nicht das richtige Ergebnis an: Stelle sicher, dass der richtige Zellbereich und der ColorIndex in der Funktion Farbenzaehlen angegeben sind.


Alternative Methoden

Eine alternative Methode zum Zählen farbiger Zellen ist die Verwendung von bedingter Formatierung, um die Zellen zu kennzeichnen. Du kannst eine separate Spalte verwenden, in der du ein "x" einträgst, um farbige Zellen zu kennzeichnen. Dies ermöglicht eine einfachere Datenanalyse.


Praktische Beispiele

Hier ist ein Beispiel, wie du die Anzahl der farbigen Zellen in mehreren Spalten zählen kannst:

=Farbenzaehlen(B1:B500;1) + Farbenzaehlen(C1:C500;1)

Dies zählt die Anzahl der Zellen mit der Hintergrundfarbe ColorIndex 1 in den Spalten B und C.


Tipps für Profis

  • Automatische Aktualisierung: Um die Funktion automatisch zu aktualisieren, kannst du das Worksheet_SelectionChange-Ereignis verwenden, um die Zählung bei jeder Auswahländerung zu berechnen.

  • Verwende Named Ranges: Um die Handhabung zu erleichtern, kannst du benannte Bereiche für die Zellbereiche verwenden, die du zählst.


FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der markierten Zellen zählen?
Du kannst die Funktion ZÄHLENWENN oder die benutzerdefinierte Funktion Farbenzaehlen verwenden, um die markierten Zellen zu zählen, indem du den entsprechenden ColorIndex angibst.

2. Funktioniert das auch in älteren Excel-Versionen?
Ja, die hier beschriebenen Methoden funktionieren in den meisten Excel-Versionen, die VBA unterstützen.

3. Kann ich auch mehrere Farben zählen?
Ja, du musst die Funktion Farbenzaehlen für jede Farbe aufrufen und die Ergebnisse addieren.

4. Was ist der ColorIndex?
Der ColorIndex ist eine numerische Darstellung der Farben in Excel. Du kannst die Farbnummern in der Farbpalette von Excel finden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige