@Karo
Asche über mein Haupt!Gut, das er das auskommentiert hat, damit ists zwar ein sinnfreier Kommentar aber wenigstens kein Syntaxfehler.
Klarer Fall von "Wer lesen kann ...".
@KB_Pößneck
Ich würde das ganze mal versuchen so zu erklären.Das Problem tritt nur unmittelbar nach dem Öffnen aus, nicht beim erneuten Ausführen der Funktion.
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
Sorry, aber da kann ich dir mit meinem Anfängerwissen leider nicht weiterhelfen.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.
Ich hoffe das ich dir diesmal wenigstens ein bischen weiterhelfen konnte.
Gruß
balu