Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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

Hintergrundfarben zählen, Anpassung gesucht

Hintergrundfarben zählen, Anpassung gesucht
16.04.2009 22:39:44
Fenja
Hallo für ein zweites mal heute.
Ich habe in Zeile D3 bis AK3 mehrere Zellen, die eine grüne (leuchtend grün) Hintergrundfarbe haben.
Diese (grünen Farbindex müsste "4" sein) möchte in Zelle AO3 Zählen lassen.
Folgendes habe ich im recherchiert kann es aber nicht selber anpassen.
in AO3 =CountColor(3;D3:AK3)
(muss auch ein Fehler drin sein, habs schon angepasst aber eben falsch)
Option Explicit

Function CountColor(Farbe As Range, ParamArray rngArea()) As Double
Dim rngCell As Range
Dim varArea As Variant
Dim intColor As Integer
intColor = Farbe(4).Interior.ColorIndex
Application.Volatile
For Each varArea In rngArea
For Each rngCell In varArea
If rngCell.Interior.ColorIndex = intColor Then
CountColor = CountColor + 1
End If
Next
Next
End Function


Danke für eure vorzügliche Hilfe
Fenja

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hintergrundfarben zählen, Anpassung gesucht
16.04.2009 22:56:01
Daniel
Hi
damit das Makro nach deinen Vorgaben funktioniert (erster Parameter ist die Index-Zahl der Farbe), musst du es so anpassen:

Function CountColor(Farbe As Integer, ParamArray rngArea()) As Double
Dim rngCell As Range
Dim varArea As Variant
Application.Volatile
For Each varArea In rngArea
For Each rngCell In varArea
If rngCell.Interior.ColorIndex = Farbe Then
CountColor = CountColor + 1
End If
Next
Next
End Function


eine andere Alternative wäre, daß der erste Parameter ein Zellbezug ist, und alle Zellen gezählt werden, die die gleiche Farbe haben wie die Zelle aus dem ersten Parameter. Das würde dann so aussehen:


Function CountColor(rngFarbe As Range, ParamArray rngArea()) As Double
Dim rngCell As Range
Dim varArea As Variant
Dim intFarbe As Integer
Application.Volatile
intFarbe = rngFarbe(1).Interior.ColorIndex
For Each varArea In rngArea
For Each rngCell In varArea
If rngCell.Interior.ColorIndex = intFarbe Then
CountColor = CountColor + 1
End If
Next
Next
End Function


aber wie gesagt, für die 2. Variante ist der erste Parameter ein Zellbezug.
Gruß, Daniel

Anzeige
Anders gelöst. Danke!
16.04.2009 23:14:53
Fenja
Habs anders gelöst, ohne VBA, ist mir doch ne Nummer zu aufwendig.
Trotzdem Danke
AW: Ist auch besser so, Farbenzählen ist Quatsch.
16.04.2009 23:17:19
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige