Zähle Zellen mit bedingter formatierung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

manga12
Beiträge: 2
Registriert: Sa, 04.01.2014 21:55

Zähle Zellen mit bedingter formatierung

Beitrag von manga12 »

Hallo zusammen,
ich habe eine Tabelle mit mehreren Zeilen. Sind bestimmte Daten enthalten, je nach zustand, werden diese Grau oder Schwarz dargestellt. DIeses geschiet durch die bedingte Formatierung.
Hier das Makro, was ich bis jetzt gefunden habe:

Code: Alles auswählen

REM  *****  BASIC  *****

Sub Farben_zaehlen   
	oCalc = thisComponent
	oSheet = oCalc.sheets(0) 'erstes Tabellenblatt
	z = Array("B2:K2","B3:K3","B4:K4") 'Bereiche die geprüft werden
	'Anfang der Ausgabe. Achtung: Der Index fängt bei Null an zu zählen!
	rot = 11 'in Zelle (C)12
	blau = 11 'in Zelle (D)12
	For i = LBound(z()) To UBound(z()) 
	oBereich=oSheet.getCellRangeByName(z(i))
	x = 0
	y = 0
	'auslesen der Eckpunkte 
	iErsteSpalte = oBereich.rangeAddress.startColumn
	iErsteZeile = oBereich.rangeAddress.startRow
	iLetzteSpalte = oBereich.rangeAddress.EndColumn
	iLetzteZeile = oBereich.rangeAddress.EndRow 
	For l = 0 to iLetzteZeile-iErsteZeile
	For m = 0 to iLetzteSpalte-iErsteSpalte
	oCell=oBereich.getCellByPosition(m,l)
	if oCell.Cellbackcolor = RGB (255, 0, 0) then ' Farbe rot
	x = x + 1
	end if
	if oCell.Cellbackcolor = RGB (0, 0, 255) then ' Farbe blau
	y = y + 1   
	end if
	mycellRot = oSheet.getCellByPosition( 2, rot) 'Ausgabe in C12 bis C14
	mycellRot.value= x
	mycellBlau = oSheet.getCellByPosition( 3, blau)'Ausgabe in D12 bis D14
	mycellBlau.value= y   
	next m
	next l 
	rot = rot +1
	blau = blau +1   
   Next i
End Sub
"B2:K2","B3:K3","B4:K4" -> Diesen Bereich wollte ich auf bestimmte Spalten ändern. -> "A5:A20","B5:B20","C5:C20"
oCell.Cellbackcolor = RGB (255, 0, 0) -> Dieses Funktioniert nur mit manueller Fomratierung.
- Was müsste geändert werden, damit es mit der bedingten Formatierung zusammen arbeitet?
- Wie sieht es aus, wenn ich anstelle des Hintergrundes die Schriftfarbe nehmen möchte?

Hier ist die Ausgabe der Werte für Rot und Blau nebeneinander und für die unterschiedlichen Bereiche unter eiander.
Wie müsste es aussehen, wenn ich Rot und Blau untereinander und die unterschiedlichen Bereicheneben eiander haben möchte?
Ich habe mal an den Werten für die 'Ausgabe rum gebastelt.

Code: Alles auswählen

rot = 11 'in Zelle (C)12
blau = 11 'in Zelle (D)11
...
mycellRot = oSheet.getCellByPosition( 2, rot) 'Ausgabe in C12 bis C14
...
mycellBlau = oSheet.getCellByPosition( 3, blau)'Ausgabe in D12 bis D14
...
Dadurch habe ich erreicht, dass die Blau und Rot unter einander dargestellt werden. Leider wurden die Anderen Bereiche nicht ,mehr dargestellt.

Im Netz habe ich zu meinen Problemen verständlichen Lösungsansatz gefunden.
cytron
**
Beiträge: 22
Registriert: Sa, 04.01.2014 03:14

Re: Zähle Zellen mit bedingter formatierung

Beitrag von cytron »

wow - ich muss gestehen, dass ich beim lesen irgendwie nicht durchgeblickt habe, was nun wie sein soll ...
auch hab ich nicht verstanden wenn du unten sagst "ich hab mal an den werten rumgebastelt" und die werte sind oben genau so wie die unteren, das heisst das obere makro ist auch schon von dir verändert und funktioniert also nicht?

was mich auch verwirrt ist, dass du sagst grau/schwarze zellen und unten ist dann rot und blau - ich hoffe das hat jemand von den Profis verstanden und kann dir da helfen. bin selbst grade dabei mich in makros reinzuarbeiten, allerdings in writer, aber ich muss gestehen, dass ich hier nicht wirklich verstehen würde, was du erreichen willst.
hast du ein makro das funktioniert, nur eben die zellbereiche sollen anders sein, wie du sagtest und die farben anders? statt rot und blau also für dich schwarz und grau? und statt der hintergrundfarbe der zellen willst du die schriftfarbe ändern?
dein letzter satz ist mir auch ein rätsel ? verwirrung pur! :D

wenn du ein makro hast das funktioniert und nur auf deine umstände angepasst werden muss, so poste doch bitte das funktionierende, unveränderte makro mal.
rot = 11 und blau = 11 erscheint mir sehr hoch... war das mal rot=0 blau =0 ...das ist doch ne schleife die hochzählt, oder? es heisst ja im makro rot=rot+1 ...ne schleife... das array wird schritt für schritt durchlaufen... warum wird rot auf 11 "festgesetzt" ?
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Zähle Zellen mit bedingter formatierung

Beitrag von F3K Total »

Hallo manga12,
was du erreichen möchtest ist auch mir nicht klar!
Aber eines ist sicher: Die Farben, die Zellen durch bedingte Formatierung erhalten haben, zu zählen, ist ohne sehr gute Programmierkenntnisse nicht möglich! Ich habe noch keine Lösung dazu gesehen.
Es ist einfacher, Zellen, die eine bestimmte Bedingung erfüllen, Farben per Makro zuzuordnen, ob Hintergrund-, Schrift, Rahmen- oder auch Schattenfarbe als die bedingten Formatierungen rekursiv zu analysieren. Wie du richtig geschrieben hast, ist es möglich, diese hart formatierten Farben zu zählen.
Was genau willst du erreichen? Dich interessieren doch nicht die Farben, sondern Zellen, die einen bestimmten Inhalt haben.
z.B., wenn Du eine bedingte Formatierung hast, die alle Zellen rot einfärbt, die kleiner Null sind, sowie alle Zellen grün, die größer Null sind, dann ist es viel einfach genau danach, größer oder kleiner Null, zu suchen, als den Weg über die bedingt zugewiesenen Farben zu wählen.
Du solltest dein Problem am Besten an einem Beispieldokument, was du hier hochlädst, erklären.
Gruß R
manga12
Beiträge: 2
Registriert: Sa, 04.01.2014 21:55

Re: Zähle Zellen mit bedingter formatierung

Beitrag von manga12 »

Erst mal für die Infos danke. Mein Problem ist, das ich eine Spalte mit dem Status habe. Zum Beispiel ein "N" für Nein. Die Zeile mit dem "N"wird mit bedingter Formatierung mit einer grauen Schrift Farbe versehen. In anderen Zeilen stehen Bedingungen. Zum Beispiel ein"F" für Fehler. Jetzt möchte ich diese F's zählen. Die Gesangsnumme kann ich mit Zähle wenn ermitteln. Ich möchte die grauen F's und die schwarzen F's einzeln ausweisen. Gibt es eine Lösung hier für ohne Hilfsspalten?
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Zähle Zellen mit bedingter formatierung

Beitrag von Karolus »

Hallo

Nimm bsplw.

Code: Alles auswählen

=SUMMENPRODUKT(A1:A100="N";C1:C100="F")
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Zähle Zellen mit bedingter formatierung

Beitrag von F3K Total »

@manga12:
Moin,
Na siehste, sogar ohne Makro geht das, ganz einfach.
Und, ein weiterer Vorteil: Wenn Du die, der bedingten Formatierung zugewiesene Formatvorlage ändern wolltest, etwa Schriftfarbe grau in Zellhintergrund gelb hättest du mit dem Farbzählmakro ein Problem, während die Formel von Karolus funktionieren würde.
Gruß R
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Zähle Zellen mit bedingter formatierung

Beitrag von Karolus »

Hallo
Im übrigen kann man per Makro so nicht eine per bF gesetzte Hintergrundfarbe auslesen.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten