❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️

❤️ HELFEN SIE JETZT >> << HELFEN SIE JETZT ❤️

>> 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] Zellen mit farbigem Hintergrund zählen

Alles zur Programmierung im LibreOffice.
Antworten
hb1756
Beiträge: 8
Registriert: Di 25. Nov 2025, 10:26

[GELÖST] Zellen mit farbigem Hintergrund zählen

Beitrag von hb1756 » 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:

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 Function
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...
Zuletzt geändert von hb1756 am Sa 29. Nov 2025, 13:55, insgesamt 1-mal geändert.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2623
Registriert: Fr 10. Dez 2010, 10:01

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von karolus » Di 25. Nov 2025, 19:12

Hallo

Funktioniert hier einwandfrei, auch nach erneuten öffnen der Datei ( LO25.2.3.2 und LO25.8.3.2 )
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

hb1756
Beiträge: 8
Registriert: Di 25. Nov 2025, 10:26

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von hb1756 » Di 25. Nov 2025, 23:57

Fehlermeldung.png
Fehlermeldung.png (75.7 KiB) 413 mal betrachtet
Danke für die schnelle Reaktion. Ich habe übrigens LibreOffice 24.2.7.2 unter Linux Mint Zara.
Daß es bei Ihnen reibungslos funktioniert, ist zwar einerseits schon mal gut. Man kann ja eigentlich sagen, daß es auch bei mir letzten Ende funktioniert, aber leider eben mit einer lästigen Macke, von der ich nicht verstehe, wo sie herkommt. Ich muß immer erst jede Zelle, in der ich eine Zahl sehen möchte, per Funktionsassistent auswählen und dort OK klicken. Dann ist die Zahl auch wieder da. Und immer geht es bei der Fehlermeldung um "Sheets", was mir nichts sagt. Ich hänge mal zwei Bildschirmfotos an zur Illustration. Ist vielleicht meine Tabelle oder das Tabellenblatt (es hätte die Nummer 14) nicht ordnungsgemäß deklariert? Die Sache ist mir ein Rätsel...
Dateianhänge
TabelleMitAuswertung.png
TabelleMitAuswertung.png (128.39 KiB) 413 mal betrachtet

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2623
Registriert: Fr 10. Dez 2010, 10:01

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von karolus » Mi 26. Nov 2025, 00:59

Hallo
Speichere mal die UDF in dem Calc-dokument indem sie auch benutzt wird, und lösche sie in ⇒Meine Makros⇒Standard⇒Module1
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

hb1756
Beiträge: 8
Registriert: Di 25. Nov 2025, 10:26

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von hb1756 » Mi 26. Nov 2025, 14:29

Danke für den Vorschlag. Ich habe Folgendes gemacht:
  • Eine Kopie meiner Tabelle erstellt und geöffnet mit dem Ergebnis, daß dort die Zahlen/Ergebnisse der Zählung sofort auftauchten, obwohl in der Eingabezeile für die Zellen mit den Ergebnissen gar nichts stand. Wie kann das sein?
  • Im Editor das Makro gelöscht.
  • Dann geschaut, ob die Funktion noch in den fraglichen Zellen steht (war so). Ich nehme an, daß mit UDF diese Einträge gemeint waren.
  • Dokument gespeichert und wieder geöffnet.
  • Nun kommen Fehlermeldungen ("#NAME?") aus den besagten Zellen, aber seltsamerweise nicht aus allen. In dreien steht nach wie vor ein Ergebnis. Alle Einträge in der Eingabezeile, auch die mit einer Zahl in der Zelle drin, haben aber jetzt nicht mehr "=FARBE_ZAEHLEN", sondern "=farbe_zaehlen". Das heißt, die Funktion wird nicht erkannt - zu Recht. Aber woher kommen dann trotz nicht gefundener Funktion die anderen Zahlen?
FarbeZaehlen.png
FarbeZaehlen.png (216.66 KiB) 371 mal betrachtet

hb1756
Beiträge: 8
Registriert: Di 25. Nov 2025, 10:26

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von hb1756 » Do 27. Nov 2025, 00:10

Mir fällt übrigens jetzt erst ein Detail auf, welches mir entgangen ist bis dato: Im Funktionsassistenten gibt es für die Funktionen oben rechts für das Funktionsergebnis und weiter unten rechts ein Unterfensterchen, in welchem das Ergebnis der Formel steht, so wie sie angelegt wurde. Bei normal durchlaufenden Funktionen (ich habe in der nämlichen Tabelle ein paar Zellen mit "ZÄHLENWENN") steht in beiden Fensterchen ein Ergebnis. Daraus schließe ich, daß "FARBEN_ZAEHLEN" nicht als Funktion gespeichert ist - es taucht auch nicht in der Liste der Funktionen auf.

Bei denjenigen Zellen, um die es mir hier geht, steht im oberen Fensterchen nichts. Nur im untersten Fensterchen steht das (korrekte) Ergebnis. Mein Makro stellt offenbar zwar irgendwie eine Funktion bereit, aber nicht so ganz richtig. Aber was genau ist hier faul? Die Fehlermeldungen bringen mich nicht weiter, und ich bin leider auch kein Makro-Virtuose.


Auswahl_107.png
Auswahl_107.png (133.48 KiB) 319 mal betrachtet
Auswahl_106.png
Auswahl_106.png (147.72 KiB) 319 mal betrachtet

hb1756
Beiträge: 8
Registriert: Di 25. Nov 2025, 10:26

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von hb1756 » Do 27. Nov 2025, 16:23

Ich frage nochmal genauer nach:
Mit UDF ist User Defined File gemeint - korrekt? Und wenn ja, welcher/welche ist/sind genau gemeint? Der Inhalt des Makros?
Auf welche Weise und an welchem Ort soll ich den/die in meiner Tabelle speichern?
Tut mir leid, daß das vielleicht blöde Fragen sind, aber ich komme sonst nicht weiter.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2623
Registriert: Fr 10. Dez 2010, 10:01

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von karolus » Do 27. Nov 2025, 17:40

Hallo

»UDF« ⇒ »UserDefinedFunction« ist die Funktionsdefinition( ==Makrocode )
diese Funktionen sind nicht sichtbar im Funktionsassistenten, aber trotzdem aus Calc heraus aufrufbar wie jede andere Calcfunktion auch !! aber nur dann wenn sie in …⇒Meine Makros ⇒ Standard ⇒ irgendein_modul gespeichert werden, oder alternativ im »aufrufenden_Calc_dokument.ods« ⇒ Standard ⇒ irgendein_modul !!!

und ja du sollst den Basic-code aus ⇒Meine Makros ⇒ Standard ⇒ irgendein_modul herausnehmen und in dein »aufrufendes_Calc_dokument.ods« ⇒ Standard ⇒ irgendein_modul einfügen.

Hintergrund: damit soll verhindert werden das Calc die Funktion »findet« und ausführen möchte, bevor die Calc-Datei vollständig initialisiert ist.
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)

hb1756
Beiträge: 8
Registriert: Di 25. Nov 2025, 10:26

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von hb1756 » Fr 28. Nov 2025, 17:48

Danke! Das hilft mir schon mal etwas weiter, aber hier kommt jetzt noch einmal eine dumme Frage:

Im Moment ist das Makro in "Meine Makros > Standard > farben_zaehlen" gespeichert. Aber wenn ich den Makro-Code jetzt in meine besagte Tabelle verpflanze: wo genau soll er hin? In irgendeine Zelle? Eine bestimmte? Oder noch woanders hin? In den Funktionsassistenten?
Das ist mir nicht klar. Was genau ist mit »aufrufendes_Calc_dokument.ods« ⇒ Standard ⇒ irgendein_modul gemeint? Soll das der Code des Moduls sein?

Im Menü "Einfügen" finde ich allenfalls "OLE-Objekt > Formelobjekt". Ist das gemeint?

hb1756
Beiträge: 8
Registriert: Di 25. Nov 2025, 10:26

Re: Zellen mit farbigem Hintergrund zählen

Beitrag von hb1756 » Sa 29. Nov 2025, 13:52

Hurra! Ich habe die Nuß geknackt. Es lag alles nur daran, daß ich die ganze Zeit nicht verstanden habe, daß immer vom Makro-Editor die Rede war und daß der Code aus "Standard" weg soll und in den Eintrag hinein, der zu dieser besagten Tabelle gehört. Hab ich dann gemacht, und jetzt öffnet sich das Tabellendokument tatsächlich ohne Fehlermeldung, und die Zahlen der Auswertung sind auch sofort da und aktualisieren sich auch, wenn man nach Änderungen das Dokument erneut öffnet. Wunderbar!

Herzlichen Dank für die Hilfe - hat halt nur gedauert, bis bei mir der Groschen gefallen ist. Liegt auch daran, daß ich kaum jemals mit dem Makro-Editor gearbeitet habe.

Noch ein schönes Adventswochenende


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