🙏 Helfen Sie mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Farbe von Zellen zählen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
balu
* LO-Experte *
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Farbe von Zellen zählen

Beitrag von balu » Di 8. Okt 2013, 12:48

Hallo Leute,

@Karo
Gut, das er das auskommentiert hat, damit ists zwar ein sinnfreier Kommentar aber wenigstens kein Syntaxfehler.
Asche über mein Haupt!
Klarer Fall von "Wer lesen kann ...".



@KB_Pößneck
Das Problem tritt nur unmittelbar nach dem Öffnen aus, nicht beim erneuten Ausführen der Funktion.
Ich würde das ganze mal versuchen so zu erklären.
Wenn beim erstenmal die Datei, oder Calc geöffnet wird, dann steht ja noch nicht genau fest welches Tabellenblatt das aktive ist, auch wenn z.B. Tabelle1 angezeigt wird. Der Controller hat also noch nicht das aktive Blatt erfassen können.


Es gibt wahrscheinlich verschiedene Methoden die Fehlermeldung zu vermeiden, oder zu umgehen.

Vermeiden:
Mittels ein paar zusätzlicher Zeilen in der Function den Controller dazu zwingen z.B. Tabelle1 als aktiv zu setzen. Dies ist in meinen Augen leider unfexibel.

Umgehen:
Einfach in die Function zwei Zeilen einfügen, die den Fehler abfängt und an eine defenierte Position verzweigt. Und das sieht so aus.

Code: Alles auswählen

function FARBSUMME(vonZeile as Long, bisZeile as Long, oSpalte as Long) as integer

	oWert = 0

		on error goto ErrorHandler ' <--Fehlerbehandlung anmelden

	osheet = thisComponent.CurrentController.ActiveSheet
	oCol = oSpalte -1
	sRow = vonZeile -1
	eRow = bisZeile -1		
		
		for i = sRow to eRow
			'Die Folgezeile liest die Hintergrundfarbe
			if osheet.getcellbyposition(oCol,i).CellBackColor = RGB(0, 255, 255) then
				oWert = oWert + 1
			end if
		next i
	
		ErrorHandler: ' <- Sprungmarke für "on error goto ErrorHandler"

	FARBSUMME = owert
End function
Wenn jetzt beim öffnen der Datei der bekannte Fehler auftritt, dann wird er zu der Sprungmarke umgeleitet und FARBSUMME hat dann automatisch den Wert gleich Null (0). Beim betätigen der lästigen Tastenkombination wird die Function wie gewünscht ausgeführt, da ja jetzt kein Fehler mehr auftreten wird.


Außerdem ist noch komisch, daß die Funktion mit <Strg> + <Umsch> + <F9> nur ausgeführt wird, wenn in einer der Tabellen die Zelle mit dem Funktionsaufruf den Fokus hat.
Sorry, aber da kann ich dir mit meinem Anfängerwissen leider nicht weiterhelfen.

Ich hoffe das ich dir diesmal wenigstens ein bischen weiterhelfen konnte.



Gruß
balu

KB_Pößneck
Beiträge: 39
Registriert: Di 12. Feb 2013, 13:54

Re: Farbe von Zellen zählen

Beitrag von KB_Pößneck » Di 8. Okt 2013, 15:52

Dankeschön, jetzt gehts.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten