Zählenwenn -je nach Formatvorlage- *******

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

penti
**
Beiträge: 45
Registriert: Mi, 04.02.2004 18:06
Wohnort: Hanau

Zählenwenn -je nach Formatvorlage- *******

Beitrag von penti »

Hallo und guten Tag,

in einer Tabelle möchte ich nur diejenigen Werte von Zellen zählen, wenn deren Vorlage z. B. grün ist. Ich komme aber nicht weiter, Zählenwenn scheint für solche Fälle nicht gedacht zu sein.
Die Hilfe bietet hierzu keine Unterstützung und hier im Forum finde ich auch nichts.

Hat jemand eine Idee?

Vielen Dank und noch einen schönen Abend

Gruß
penti
Win2000, OpenOffice 3.2
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von Eia »

Nicht nur ZÄHLENWENN.
Man kann generell mit Calc-Funktionen keine Vorlagen abfragen (Nur zuweisen).
Auf das Format einer Zelle kann man sich mit =ZELLE("FORMAT";D1) beziehen - wobei dabei nur eine begrenzte Anzahl von Zahlenfromaten abgefragt werden kann (Details im Hilfetext) und auch das Aktualisieren hat seine Tücken.
Aber wie bekommen die Zellen denn ihre Vorlage? Falls diese per "Bedingte Formatierung" zustande kommt, könntest Du ja die gleichen Bedingungen auch für die Zellformel verwenden.
mfG
penti
**
Beiträge: 45
Registriert: Mi, 04.02.2004 18:06
Wohnort: Hanau

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von penti »

Hallo Eia,

Danke für den erhellenden Hinweis. :?
Das Format der Zelle wird händisch zugewiesen. Daher habe ich auch die Notwendigkeit, über eine Funktion zählen zu müssen, wenn ich das nicht auch noch händisch machen will.

Gruß
penti
Win2000, OpenOffice 3.2
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von Eia »

penti hat geschrieben:Das Format der Zelle wird händisch zugewiesen. Daher habe ich auch die Notwendigkeit, über eine Funktion zählen zu müssen, wenn ich das nicht auch noch händisch machen will.
Wahrscheinlich würde es mit einem Makro gehen, frag vielleicht mal im Basic-Forum nach.
Ansonsten könnte ein Trick helfen:
Angenommen, Deine Daten stehen in Tabelle1
Jetzt schreibe in Tabelle2.A1:
=ZELLE("FORMAT";Tabelle1.A1)
und kopiere diese Formal in einen Bereich, der mindestens gleich gross ist wie Dein Zellbereich in Tabelle 1.
Angenommen, Du willst alle Zellen zählen, welche die Vorlage "BLAU" haben. Dann änderst Du diese Vorlage vorübergehend auf ein Zahlenformat mit z.B. 8 Nachkommastellen (in der Annahme, dass Du sonst so ein Format nicht benutzt. Jetzt steht in Tabelle2 in allen Zellen, deren Pendant in Tabelle1 diese Vorlage hat, "F8" und das kannst Du ja zählen.
Das ist aber nur eine Variante, wenn Du einmalig sowas auswerten musst. Für regelmässiges Arbeiten eignet sich das sicher nicht.
mfG
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von turtle47 »

Hallo Zusammen,

ein Makro könnte folgendermaßen aussehen:

Code: Alles auswählen

Sub Farben_zaehlen	
	oDoc = thisComponent
	oSheet = oDoc.sheets(0) 'erstes Tabellenblatt
	oCellRange = osheet.getCellRangeByName("A1:K9") 'zu prüfender Zellbereich
	x = 0
	y = 0
	'auslesen der Eckpunkte  
	iErsteSpalte = oCellRange.rangeAddress.startColumn
	iErsteZeile = oCellRange.rangeAddress.startRow
	iLetzteSpalte = oCellRange.rangeAddress.EndColumn
	iLetzteZeile = oCellRange.rangeAddress.EndRow
	For i = 0 to iLetzteZeile-iErsteZeile
	For m = 0 to iLetzteSpalte-iErsteSpalte
	oCell=oCellRange.getCellByPosition(m,i)
	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
	next m
	next i  
	msgbox ("Anzahl rote Zellen: " & x  & CHR (13) & "Anzahl blaue Zellen: " & y ,"68","Farben zählen" )
End Sub
Viel Erfolg.

Jürgen

Edit: Die Farbe (RGB) einer aktiven (selektierten) Zelle bekommst Du mit:

Code: Alles auswählen

Sub FarbeAuslesen
odoc=thiscomponent
oSheet = ThisComponent.CurrentController.getActiveSheet()
oZelle=oDoc.getCurrentSelection() 'selektierte Zelle
farben = oZelle.CellBackColor
f= "RGB-Farben: " & red(farben) &"," & green(farben) & "," & blue(farben)
msgbox f
end sub
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
penti
**
Beiträge: 45
Registriert: Mi, 04.02.2004 18:06
Wohnort: Hanau

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von penti »

Hallo,

vielen Dank für die Antworten.

@Eia
Du hast Recht, das eignet sich sehr gut, wenn das Auszählen nur hin und wieder durchgeführt werden muss. Ich möchte das aber regelhaft haben.

@Jürgen
Gerade wollte ich fragen, wie ich die RGB Farben herausfinden kann. Aber Du bist mit Deinem 2ten Posting schneller gewesen. Teste es mal aus. Dankeschön.

Gruß
penti
Win2000, OpenOffice 3.2
penti
**
Beiträge: 45
Registriert: Mi, 04.02.2004 18:06
Wohnort: Hanau

Erledigt: Zählenwenn -je nach Formatvorlage- *******

Beitrag von penti »

Hallo Jürgen,

bekomme bei Auslesen der Farben immer nur 255,255,225 ??

Mittlerweile habe ich mir beholfen und realisiere das über eine Hilfstabelle und habe als Ergebnis den Kalender, an einigen Tagen eingefärbt und erhalte monatsweise die Anzahl der eingefärbten Tage. Das stellt mich zwar nicht zufrieden, weil es über eine Hilfstabelle gehen muss, ist aber besssr als händisch auszählen zu müssen.

Dennoch vielen Dank.

Gruß
penti
Win2000, OpenOffice 3.2
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Erledigt: Zählenwenn -je nach Formatvorlage- *******

Beitrag von turtle47 »

penti hat geschrieben: bekomme bei Auslesen der Farben immer nur 255,255,225 ??
Dann hat die aktive Zelle auch keine Farbe!
Du musst in eine Zelle klicken, die Farbe enthält und dann das Makro FarbeAuslesen starten.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Re: Erledigt: Zählenwenn -je nach Formatvorlage- *******

Beitrag von Eia »

penti hat geschrieben:an einigen Tagen eingefärbt
Was sind denn das für Einfärbungen? Vollkommen willkürlich?
mfG
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von Stephan »

bekomme bei Auslesen der Farben immer nur 255,255,225 ??
wahrscheinlich heißt die letzte Zahl auch 255 und ansonsten rate ich mal:

Die Farbe Deiner Zelle kommt durch eine bedingte Formatierung zustande?


Falls ja, ist das Makro nicht geeignet diese Farbe zu lesen.

Du müßtest dann die bedingte Formatierung auslesen, dort nachschauen welche Formatvorlage gilt und dort schauen wie die Farbe ist.



Gruß
Stephan
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von turtle47 »

Hallo Stephan,
penti hat geschrieben:Das Format der Zelle wird händisch zugewiesen.
in diesem Fall hätten die Makros ja funktioniert.
Vielen Dank für den für mich sehr wichtigen Hinweis:
Stephan hat geschrieben:Die Farbe Deiner Zelle kommt durch eine bedingte Formatierung zustande?
Man lernt eben immer noch dazu.

Schöne Grüße.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von Eia »

Stephan hat geschrieben: Die Farbe Deiner Zelle kommt durch eine bedingte Formatierung zustande?
Wenn dem so wäre, bräuchte man doch gar kein Makro, sondern könnte die gleiche Bedingung zum Zählen anwenden, welche man auch für die Zuordnung der bedingten Formatierung benutzt.
Habt Ihr schon geklärt, ob mit "Farbe" die Schrift- oder die Hintergurndfarbe gemeint ist?

mfG
penti
**
Beiträge: 45
Registriert: Mi, 04.02.2004 18:06
Wohnort: Hanau

Re: Zählenwenn -je nach Formatvorlage- *******

Beitrag von penti »

Hallo Eia,

der Hintergrund der Zelle ist händisch eingefärbt also ohne bedingte Formatierung.
Dass das Makro nicht funktionierte lag einfach daran, dass die Zelle beim Ausführen wohl angeklickt gewesen war aber nicht markiert. Nachdem die Zelle markiert war, klappte auch das Makro.

Noch einmal allen ein herzliches Dankeschön für die Hilfestellung!

Gruß
penti
Win2000, OpenOffice 3.2
Antworten