Seite 1 von 3

[gelöst] Farbe von Zellen zählen

Verfasst: Do 26. Sep 2013, 07:33
von KB_Pößneck
Hallo
In einer großen bestehenden Tabelle möchte ich gerne die Hintergrundfarbe von Zellen in einem Bereich zählen lassen. Bitte keine Diskussion über den Inhalt. Die Zellen haben einen Inhalt, der aber durch die Farbe ergänzt wird. Diese kann auch nicht aus dem Inhalt ermittelt werden. Ich will ausschließlich die Hintergrundfarbinformation auswerten.
Bedingte Formatierung ist nicht vorhanden und auch nicht möglich.
Von der Seite http://de.openoffice.info/viewtopic.php ... 01cb4a19f6 habe ich den folgenden Programmcode für eine Funktion. Leider gibt der kein Ergebnis aus.

function FARBSUMME(vonZeile, bisZeile, oSpalte) as integer
' osheet = thisComponent.sheets( tab -1 )
oCol = oSpalte -1
sRow = vonZeile -1
eRow = bisZeile -1
oWert = 0
for i = sRow to eRow
' if osheet.getcellbyposition(oCol,i).CellStyle = RGB(0, 255, 255) then
if osheet.getcellbyposition(oCol,i).CellBackColor = RGB(0, 255, 255) then
oWert = oWert + 1
end if
next i
End function
--------------------------------------------------------------------------------
Aufruf mit : =FARBSUMME(2;685;17)

Ich möchte die Spalte Q auswerten und hier im Bereich von Zeile 2 bis 685. Aktualisieren mit <Strg> + <Umsch> + <F9> ist klar, aber das Ergebnis ist immer 0.
Hat jemand eine Ahnung, was da nicht funktioniert ?
Matthias

Re: Farbe von Zellen zählen

Verfasst: Fr 27. Sep 2013, 18:46
von F3K Total
Moin,
dies ist ein privates Forum, in dem Anwender in ihrer Freizeit anderen Anwendern helfen sich selbst zu helfen.
KB_Pößneck hat geschrieben:Bitte keine Diskussion ...
...ganz schlechter Einstieg ...
KB_Pößneck hat geschrieben:Kann mir das jemand so umschreiben, daß LibO es versteht ?
... beachte den o.a. roten Text.
Eigentlich ein Kinderspiel, aber ohne Eigeninitiative ...
Viel Erfolg noch.
R

Re: Farbe von Zellen zählen

Verfasst: Sa 28. Sep 2013, 13:11
von Hazel
F3K Total hat geschrieben:
KB_Pößneck hat geschrieben:Bitte keine Diskussion ...
...ganz schlechter Einstieg ...
Vor allem ein ganz schlechtes, da zu stark verkürztes, Zitat.

KB_Pößneck wollte betonen, dass der Inhalt der Calc-Zellen für sein geschildertes Problem keine Rolle spielt. Das würde ich genauso vermuten und das Problem so angehen. Leider habe aber auch ich im Augenblick noch keine Lösung, obwohl es ja ein "Kinderspiel" ist.

Re: Farbe von Zellen zählen

Verfasst: Sa 28. Sep 2013, 18:15
von Freelancer
Hallo zusammen,

ein Kinderspiel zur Lösung des Problems ist dieses Vorgehen.

Mit besten Grüßen.

Freelancer

Re: Farbe von Zellen zählen

Verfasst: Mi 2. Okt 2013, 07:23
von KB_Pößneck
Hallo
Wenn ich die Funktion aus meinem Beitrag ausführe, erhalte ich für die Programmzeile
if osheet.getcellbyposition(oCol,i).CellBackColor = RGB(0, 255, 255) then
einen Laufzeitfehler : "Objektvariable nicht belegt".
Kann mir da jemand weiterhelfen ?
Matthias

NS : Bitte nur ernstgemeinte Hilfe und kein Gemecker, das ist hier nämlich nicht die Selbststreichelgruppe.

Re: Farbe von Zellen zählen

Verfasst: Mi 2. Okt 2013, 07:59
von karolus
osheet ist an der Stelle nicht definiert.

oder ausführlich:
1. Deine Funktion benötigt 3 numerische Argumente, der Aufruf per Farbsumme(2:999;17) übergibt aber nur 2 Argumente 2:999 und 17

2. Die Definition von osheet hast du auskommentiert.

3. Die Funktion kann nirgends etwas zurückgeben
weil du versäumst FARBSUMME owert zuzuweisen.

Re: Farbe von Zellen zählen

Verfasst: Mi 2. Okt 2013, 08:32
von KB_Pößneck
Die Zeile
osheet = thisComponent.sheets( tab -1 )
(wobei die Variable "tab" der dritte Parameter von vier für diesen Funktionsaufruf im Originalbeitrag http://de.openoffice.info/viewtopic.php ... 01cb4a19f6 ist) habe ich auskommentiert, weil ich sonst beim Aufruf jeweils die Nummer der aktuellen Tabelle angeben müßte.
Gibt es eine Möglichkeit, in dieser Funktion stets die aktuelle Tabelle anzusprechen, ohne dafür einen Parameter übergeben zu müssen ?

Re: Farbe von Zellen zählen

Verfasst: Mi 2. Okt 2013, 08:59
von karolus
Hallo

Code: Alles auswählen

osheet = thisComponent.CurrentController.ActiveSheet
Karolus

Re: Farbe von Zellen zählen

Verfasst: Mi 2. Okt 2013, 10:30
von KB_Pößneck
Der Fehler ist weg, aber leider gibt die Funktion immer noch nichts aus (<Strg> + <Umsch> + <F9>).

Re: Farbe von Zellen zählen

Verfasst: Mi 2. Okt 2013, 11:07
von karolus
Hallo

Welcher Fehler von den drei...( siehe Beitrag von 7:59 Uhr ) ??
Im Übrigen ist der Abschluss als Array per strg+shift+enter hier überflüssig.

Karolus