🙏 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!🍀
>> 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
-
- Beiträge: 39
- Registriert: Di 12. Feb 2013, 13:54
Re: Farbe von Zellen zählen
Es kommt zu keiner Fehlermeldung. Die Funktion gibt einfach kein Ergebnis aus.
Ist auch nicht als Array abgeschlossen, <Strg> + <Umsch> + <F9> startet nur die Aktualisierung von Formeln.
Die Funktion steht bei MEINE MAKROS - Standard - Module1 drin.
Ist auch nicht als Array abgeschlossen, <Strg> + <Umsch> + <F9> startet nur die Aktualisierung von Formeln.
Die Funktion steht bei MEINE MAKROS - Standard - Module1 drin.
Re: Farbe von Zellen zählen
Hallo
Dann poste bitte deinen derzeitigen Code, nebst Syntax die du in Calc benutzt.
Karolus
Dann poste bitte deinen derzeitigen Code, nebst Syntax die du in Calc benutzt.
Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Farbe von Zellen zählen
Hallo KB_Pößneck,
und denk daran, dass =FARBSUMME(2:685;17)
nicht das gleiche wie =FARBSUMME(2;685;17) ist.
Gruß
balu
und denk daran, dass =FARBSUMME(2:685;17)
nicht das gleiche wie =FARBSUMME(2;685;17) ist.
Tüppfählär sollte man schon vermeiden.karolus hat geschrieben:
1. Deine Funktion benötigt 3 numerische Argumente, der Aufruf per Farbsumme(2:999;17) übergibt aber nur 2 Argumente 2:999 und 17
Gruß
balu
-
- Beiträge: 39
- Registriert: Di 12. Feb 2013, 13:54
Re: Farbe von Zellen zählen
Also, das ist die Funktion, ursprünglich von :
http://de.openoffice.info/viewtopic.php ... 01cb4a19f6
function FARBSUMME(vonZeile, bisZeile, oSpalte) as integer
osheet = thisComponent.CurrentController.ActiveSheet
oCol = oSpalte -1
sRow = vonZeile -1
eRow = bisZeile -1
oWert = 0
for i = sRow to eRow
' if osheet.getcellbyposition(oCol,i).CellStyle = RGB(0, 255, 255) then
if osheet.getcellbyposition(oCol,i).CellBackColor = RGB(0, 255, 255) then
oWert = oWert + 1 ' osheet.getcellbyposition(oCol,i).value
end if
next i
End function
Das ist der Aufruf :
=FARBSUMME(2;685;17)
Statt RGB(0,255,255) Helltürkis habe ich auch mal 255,255,255 weiß probiert, gibt auch nichts zurück.
http://de.openoffice.info/viewtopic.php ... 01cb4a19f6
function FARBSUMME(vonZeile, bisZeile, oSpalte) as integer
osheet = thisComponent.CurrentController.ActiveSheet
oCol = oSpalte -1
sRow = vonZeile -1
eRow = bisZeile -1
oWert = 0
for i = sRow to eRow
' if osheet.getcellbyposition(oCol,i).CellStyle = RGB(0, 255, 255) then
if osheet.getcellbyposition(oCol,i).CellBackColor = RGB(0, 255, 255) then
oWert = oWert + 1 ' osheet.getcellbyposition(oCol,i).value
end if
next i
End function
Das ist der Aufruf :
=FARBSUMME(2;685;17)
Statt RGB(0,255,255) Helltürkis habe ich auch mal 255,255,255 weiß probiert, gibt auch nichts zurück.
Re: Farbe von Zellen zählen
Warum hast Du in dieser Zeile das "osheet...." auskommentiert?KB_Pößneck hat geschrieben: oWert = oWert + 1 ' osheet.getcellbyposition(oCol,i).value
Ohne Basiswissen in Basic einfach etwas zu ändern, ist nicht wirklich gut.
Gruß
balu
Re: Farbe von Zellen zählen
Hallo
Füge vor der Zeile end function ein:
@Balu:
Gut, das er das auskommentiert hat, damit ists zwar ein sinnfreier Kommentar aber wenigstens kein Syntaxfehler.
Füge vor der Zeile end function ein:
Code: Alles auswählen
FARBSUMME = owert
Gut, das er das auskommentiert hat, damit ists zwar ein sinnfreier Kommentar aber wenigstens kein Syntaxfehler.
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 39
- Registriert: Di 12. Feb 2013, 13:54
[gelöst]: Farbe von Zellen zählen
Hallo
Perfekt, jetzt funktioniert es.
Die Zeile ist auskommentiert, weil sie nicht die Hintergrundfarbe, sondern den Name der Zellvorlage ausliest.
Hier noch einmal die richtige Form für die nun funktionierende Funktion. Diese steht bei :
Extras - Makros - Makros verwalten - LibreOffice Basic...
Unter Standard - Module1 (im Listenfeld "Makro aus") ist dann die Funktion FARBSUMME abgelegt. Dazu im Eingabefeld "Name des Makros" den Funktionsname eintragen und auf die dann entstehende Taste <NEU> auf der rechten Seite klicken. Im LibreOfficeBasic-Editor aus dem Wort "Sub" das Wort "Function" (ohne die doppelten Hochstriche) machen und hinter End das Wort "Sub" auch durch "Function" ersetzen.
Den Inhalt zwischen Function und End einfügen und dabei nicht die Parameter für den Aufruf und die Rückgabe hinter dem Funktionsname vergessen.
function FARBSUMME(vonZeile, bisZeile, oSpalte) 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 den Name der benutzten Zellvorlage
' if osheet.getcellbyposition(oCol,i).CellStyle = ROT then
'Die Folgezeile liest die Hintergrundfarbe
if osheet.getcellbyposition(oCol,i).CellBackColor = RGB(0, 255, 255) then
oWert = oWert + 1 ' osheet.getcellbyposition(oCol,i).value
end if
next i
ErrorHandler: ' <- Sprungmarke für "on error goto ErrorHandler"
FARBSUMME = owert
End function
Aufgerufen wird diese Funktion mit : =FARBSUMME(2;ZEILE()-5;SPALTE())
Dabei sind der erste Parameter die Startzeile, der zweite die Endzeile und der dritte die Spaltennummer.
Vielen Dank für die Hilfe.
Matthias
Perfekt, jetzt funktioniert es.
Die Zeile ist auskommentiert, weil sie nicht die Hintergrundfarbe, sondern den Name der Zellvorlage ausliest.
Hier noch einmal die richtige Form für die nun funktionierende Funktion. Diese steht bei :
Extras - Makros - Makros verwalten - LibreOffice Basic...
Unter Standard - Module1 (im Listenfeld "Makro aus") ist dann die Funktion FARBSUMME abgelegt. Dazu im Eingabefeld "Name des Makros" den Funktionsname eintragen und auf die dann entstehende Taste <NEU> auf der rechten Seite klicken. Im LibreOfficeBasic-Editor aus dem Wort "Sub" das Wort "Function" (ohne die doppelten Hochstriche) machen und hinter End das Wort "Sub" auch durch "Function" ersetzen.
Den Inhalt zwischen Function und End einfügen und dabei nicht die Parameter für den Aufruf und die Rückgabe hinter dem Funktionsname vergessen.
function FARBSUMME(vonZeile, bisZeile, oSpalte) 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 den Name der benutzten Zellvorlage
' if osheet.getcellbyposition(oCol,i).CellStyle = ROT then
'Die Folgezeile liest die Hintergrundfarbe
if osheet.getcellbyposition(oCol,i).CellBackColor = RGB(0, 255, 255) then
oWert = oWert + 1 ' osheet.getcellbyposition(oCol,i).value
end if
next i
ErrorHandler: ' <- Sprungmarke für "on error goto ErrorHandler"
FARBSUMME = owert
End function
Aufgerufen wird diese Funktion mit : =FARBSUMME(2;ZEILE()-5;SPALTE())
Dabei sind der erste Parameter die Startzeile, der zweite die Endzeile und der dritte die Spaltennummer.
Vielen Dank für die Hilfe.
Matthias
Zuletzt geändert von KB_Pößneck am Di 15. Okt 2013, 06:39, insgesamt 8-mal geändert.
Re: [gelöst] Farbe von Zellen zählen
Code: Alles auswählen
' if osheet.getcellbyposition(oCol,i).CellStyle = RGB(0, 255, 255) then
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
-
- Beiträge: 39
- Registriert: Di 12. Feb 2013, 13:54
Re: Farbe von Zellen zählen
Alles klar, Danke. Ich habe meine Zusammenfassung entsprechend geändert.
Aber jetzt tritt ein neues Problem auf.
Wenn ich die Tabellendatei (*.ODS) öffne, wird mir folgender Fehler angezeigt :
osheet = thisComponent.CurrentController.ActiveSheet
markiert.
Das Problem tritt nur unmittelbar nach dem Öffnen aus, nicht beim erneuten Ausführen der Funktion.
Aber jetzt tritt ein neues Problem auf.
Wenn ich die Tabellendatei (*.ODS) öffne, wird mir folgender Fehler angezeigt :
Dabei wird in der Funktion die ZeileBASIC-Laufzeitfehler.
Eigenschaft oder Methode nicht gefunden:
CurrentController.
osheet = thisComponent.CurrentController.ActiveSheet
markiert.
Das Problem tritt nur unmittelbar nach dem Öffnen aus, nicht beim erneuten Ausführen der Funktion.
Zuletzt geändert von KB_Pößneck am Di 8. Okt 2013, 06:23, insgesamt 1-mal geändert.
-
- Beiträge: 39
- Registriert: Di 12. Feb 2013, 13:54
Re: Farbe von Zellen zählen
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.
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.