Zellen mit farbigem Hintergrund zählen
Verfasst: Di 25. Nov 2025, 17:46
Guten Tag, liebe Forumsmitglieder,
ich habe ein Tabellenblatt in einer Tabelle mit mehreren Blättern, in dem ich Zellen in einem bestimmten Bereich habe, die mit verschiedenen Farben hinterlegt sind. Es steht auch etwas in den Zellen, aber das ist für meinen Zweck belanglos. Ich möchte nur gezählt bekommen, wieviele Zellen von jeder einzelnen dieser Farben es in dem Bereich gibt.
Dazu habe ich folgendes Makro:
Das funktioniert, aber mit Einschränkungen: ich kann eine Funktion FARBEN_ZAEHLEN mit Angabe der Tabelle und des Bereichs aufrufen für die einzelnen Farben und sehe dann auch die korrekte Zahl als Ergebnis. Beende ich dann Calc nach dem Speichern und öffne es dann wieder, sind die Zahlen verschwunden, obwohl in den Zellen immer noch die Funktion steht. Ich kann sie manuell wieder herstellen durch Wiederaufrufen der Funktion, aber eigentlich müßten sie ja von vornherein da stehen.
Beim Start von Calc springt aber auch der Makro-Editor jetzt an mit der Fehlermeldung: "BASIC-Laufzeitfehler. Eigenschaft oder Methode nicht gefunden: Sheets."
Also gibt es noch einen Fehler im Makro, den ich allerdings nicht verstehe. Was müßte ich ändern/hinzufügen, damit es ohne Fehler durchläuft?
Danke für Hilfe zur Selbsthilfe...
ich habe ein Tabellenblatt in einer Tabelle mit mehreren Blättern, in dem ich Zellen in einem bestimmten Bereich habe, die mit verschiedenen Farben hinterlegt sind. Es steht auch etwas in den Zellen, aber das ist für meinen Zweck belanglos. Ich möchte nur gezählt bekommen, wieviele Zellen von jeder einzelnen dieser Farben es in dem Bereich gibt.
Dazu habe ich folgendes Makro:
Code: Alles auswählen
REM ***** BASIC *****
Function farbe_zaehlen(iTab,sBereich,r,g,b)
'Aufrufparameter:
'iTab: Nummer des Tabellenblattes
'sBereich: zu untersuchender Bereich als String
'r,g,b: RGB-Werte der Farbe
odoc=Thiscomponent
oTab=odoc.Sheets(iTab-1)
oBereich=oTab.getCellRangeByName(sBereich)
n=0
spalten=oBereich.columns.count
zeilen=oBereich.rows.count
for sp=0 to spalten-1
for ze=0 to zeilen-1
if obereich.getCellByPosition(sp,ze).Cellbackcolor=RGB(r,g,b) then
n=n+1
end if
next
next
farbe_zaehlen=n
End FunctionBeim Start von Calc springt aber auch der Makro-Editor jetzt an mit der Fehlermeldung: "BASIC-Laufzeitfehler. Eigenschaft oder Methode nicht gefunden: Sheets."
Also gibt es noch einen Fehler im Makro, den ich allerdings nicht verstehe. Was müßte ich ändern/hinzufügen, damit es ohne Fehler durchläuft?
Danke für Hilfe zur Selbsthilfe...