Seite 1 von 1

Re: Zellen mit Farben zählen (ohne bedingte Formatierung)

Verfasst: Do, 18.10.2018 18:30
von echo
Hallo
ich vermute das an der überschaubaren Resonanz auf deine Frage erkennbar ist, das die Auswertung vom Zellformat in einer Tabellenkalkulation nicht vorgesehen ist.

Jede Art ihrer Auswertung, der Einsatz von Filtern oder Berechnungen und letztendlich auch das einfärben per bedingter Formatierung zielen in aller Regel nicht auf das Zellformat sondern auf den Inhalt der Zellen hin.
Möglicherweise ist eine Auswertung per Makro nicht undenkbar, da bin ich aber nicht der richtige.

mein Rat wäre:
Statt die Zelle manuell einzufärben, würde ich diese Zelle mit irgendeinem Zeichen auszufüllen. (Alternativ eine extra Hilfsspalte mit Zeichen ausfüllen)
Der Rest ist zB. mit =SUMMEWENN() kein Problem.
Der Inhalt der (Hilfs-)Spalte könnte eine bedingte Formatierung auslösen, so das das Einfärben automatisch geschieht.
Die manuelle Eingabe könnte sich so auf die Eingabe eines Zeichens beschränken, das möglicherweise auch noch per PullDown angeboten werden kann. Statt eines einzigen Zeichens ist natürlich auch ein Klartext möglich.

Gruß Holger

Re: Zellen mit Farben zählen (ohne bedingte Formatierung)

Verfasst: Fr, 19.10.2018 08:27
von paljass
Hi,
ich hatte mir vor einiger Zeit mal 2 Dateien - ich meine aus diesem Forum - runtergeladen, in denen Farben per Makro gezählt werden.

Kannst ja mal schauen, ob dir das irgendwie weiterhilft.

Gruß
paljass

Re: Zellen mit Farben zählen (ohne bedingte Formatierung)

Verfasst: Fr, 19.10.2018 10:19
von mikeleb
Hallo,
anbei ein Beispiel, wie man es per benutzerdefinierter Funktion lösen kann.

Code: Alles auswählen

Function farbe_zaehlen(iTab,sBereich,r,g,b)
	'Aufraufparameter:
	'iTab: Nummer des Tabellenblattes
	'sBereich: zu untersuchender Bereich als String
	'r,g,b: RGB-Werte der Farbe
	odoc=Thiscomponent
	oTab=odoc.Sheets(iTab-1)
	oBereich=oTab.getCellRangeByName(sBereich)
	n=0
	spalten=oBereich.columns.count
	zeilen=oBereich.rows.count
	for sp=0 to spalten-1
		for ze=0 to zeilen-1
			if obereich.getCellByPosition(sp,ze).Cellbackcolor=RGB(r,g,b) then
				n=n+1
			end if
		next
	next
	farbe_zaehlen=n
End Function
EIn Knackpunkt ist stets, dass du die RGB-Werte der Farbe kennen musst. Man muss also wissen, dass Grün3 z. b. die Werte 0,204,0 besitzt.
edit: Einfacher wäre es, wenn man beim Funktionaufrauf anstelle der RGB-Werte eine Zelle angibt, die die gewünschte Farbe hat.

Re: Zellen mit Farben zählen (ohne bedingte Formatierung)

Verfasst: Fr, 19.10.2018 11:28
von Helmut_S
Noch ein Vorschlag: vorweg sei gesagt, dass er nicht auf meinem "Mist gewachsen ist, sondern aus einem 11 Jahre alten Beitrag in diesem Forum stammt. Forums-User Eia hatte da, einen wie mir scheint, recht originellen Einfall.
Es braucht dazu kein Makro, setzt aber voraus, dass die HG-Farbe per Formatvorlage zugewiesen wurde. Dies ist sowieso zu empfehlen schon nur um sicher zu stellen, das die HG-Farbe der zu zählenden Zellen wirklich gleiche RGB-Werte enthält. Notfalls kannst du ja eine neue Zell-Vorlage mit entsprechender HG-Farbe erstellen und per Formatpinsel (mit Doppelklick) allen zu zählenden Zellen in einem Rutsch zuweisen.
Also hier gibt es - neben Markos zum Thema - den Vorschlag nachzulesen.
viewtopic.php?f=2&t=13607&hilit=z%C3%A4hlenURL
Lediglich die Beispiel-Tabelle stammt von mir.

Gruß, Helmut