verwende die Funktion folgendermaßen:
=Farbe(A1;204;204;204)
Ich habe doch ein Beispiel gegeben, warum ignorierst Du das?
nach Beispiel sollte es heißen:
=FARBE(ZELLE("ADDRESS";A1);204;204;204)
und dann läuft es auch.
Warum das so ist kann ich mir nur erklären das ich wohl ursprünglich vorhatte das auf verschiedenen Tabellen lauffähig zu halten, diese Funktionalität jedoch nicht mit reingeschrieben habe, weshalb ZELLE("ADDRESS";A1) augenscheinlich nur sicherstellt das der komplette Zellname als String geliefert wird. (Eigentlich sollte mal ADDRESS und SHEET ausgewertet werden)
OK, Du mußt das nicht wissen, nur Du solltest dann die Vorgaben beachten, weil Dein Ausdruck als Zelladresse nicht A1 sondern lediglich A übergibt. Und das gibt dann in der entsprechenden Code-Zeile einen Fehler weil das einfach keine Zelladresse ist.
Gehen würde somit auch:
=Farbe("A1";204;204;204)
Aber ich habe es jetzt mal überarbeitet, weil mir scheint das hatte ich ursprünglich vor. Habe es jetzt aber etwas anderes hinsichtlich der Parameterübergabe realisiert:
Code: Alles auswählen
Function FARBE(Zellname As String, R, G, B, Optional Tabellenname As String)
If IsMissing(Tabellenname) then
oDoc = StarDesktop.ActiveFrame.Controller.Model
Tabellenname = oDoc.CurrentController.getActiveSheet().Name
End if
zelle = ThisComponent.Sheets().getByName(Tabellenname).getCellRangeByName(Zellname)
If zelle.CellBackColor(R,G,B)=RGB(R,G,B) Then
FARBE=1
else
FARBE=0
End if
End Function
das liefert dann mit:
=FARBE("A1";204;204;204)
die Rückgabe 1 wenn der Zellhintergrund der Zelle A1 des aktiven Blattes RGB(204,204,204) ist
oder mit:
=FARBE("A1";204;204;204;"meineTabelle")
die Rückgabe 1 wenn der Zellhintergrund der Zelle A1 der Tabelle Namens 'meineTabelle' RGB(204,204,204) ist
Gruß
Stephan