mittels "funktion" Zellen Farbe prüfen ?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

mittels "funktion" Zellen Farbe prüfen ?

Beitrag von clag »

Hallo Leutz,

ja ich weiß, ist schon spät...... :)

trotzdem wollte ich euch fragen
ist es möglich mit einer ggf noch zu erstellenden FUNKTION(A1; rot) eine andere Zelle
auf die zugewiesene Hintergrundfarbe zu überprüfen oder aud den Namen der zugewiesenen Formatvorlage ?

in diesem Fall möchte ich eine Formel beeinflussen, wenn einer anderen Zelle per BF eine Vorlage bzw Farbe zugewiesen wurde

Wenn ja wie ?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Stephan »

ist es möglich mit einer ggf noch zu erstellenden FUNKTION(A1; rot) eine andere Zelle
auf die zugewiesene Hintergrundfarbe zu überprüfen oder aud den Namen der zugewiesenen Formatvorlage ?
ja
in diesem Fall möchte ich eine Formel beeinflussen, wenn einer anderen Zelle per BF eine Vorlage bzw Farbe zugewiesen wurde

Wenn ja wie ?
Kann ich nicht beantworten, da ich nicht weiß was "Formel beeinflussen" im Konkreten meint.

(Sofern es um Änderung der Formel in einer Zelle geht und das durch ein Makro geschehen soll, wiederhole ich zum x-ten Mal (UND hatte das bereits ausführlich und verständlich erklärt) das bei durch Formelaufrufen ausgelösten Makros nur die Rückgabe von Werten in die Zelle möglich ist und nicht die Rückgabe von Aktionen, sofern sich auslösende und Zielzelle auf demselben Tabellenblatt befinden.)



Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von clag »

Hallo Stephan,

mir schwebte eine Funktion vor die wahr/falsch ausgibt um zB in einem WENN() Konstrukt angewendet zu werden

bezogen auf eine Vorlage (aber dann wird eigentlich nicht auf Farbe sonder auf Vorlagename geprüft )
=WENN(( FARBFUNKTION(A1, rot)=1, "tuedies"; "tuedas")

oder wirklich
=WENN(( FARBWERT(A1)= 00FF00,"tuedies"; "tuedas") ?
=WENN(( FARBWERT(A1)= 00FF00, A1+A2; A1-A3) ?

oder auch
=(FARBWERT(A1) = Zell anzeige "00FF00"

so in etwa !?

edit: verzeiht mir die weiteren Vorschläge,Gedanken, Wünsche :)
Zuletzt geändert von clag am Mo, 12.07.2010 23:21, insgesamt 3-mal geändert.
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Stephan »

Wenn die funktion wörtlich gemeint ist wie sie dasteht, also "tuedies" und "tuedas" tatsächlich Texte sie die in die Zelle ausgegeben werden sollen ist das ohne Probleme möglich.

Sollten sich jedoch "tuedies" und "tuedas" als Aktionen verstehen so sind diese nur durchführbar wenn sie sich NICHT auf Zellen (innerhalb des Tabellenblattes indem die funktion steht) beziehen. Ich hatte das bereits umfänglich erklärt.


Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Stephan »

Nachtrag:
oder wirklich
=WENN(( FARBWERT(A1)= 00FF00,"tuedies"; "tuedas") ?
es gilt was ich bereits schrieb, die Funktion oder Nichtfunktion ist davon abhängig wie sich "tuedies" und "tuedas" verstehen (als Texte oder Aktionen)
=WENN(( FARBWERT(A1)= 00FF00, A1+A2; A1-A3) ?
eine normale Rückgabe eines Wertes, also möglich, z.B. mit der Funktion:

Code: Alles auswählen

Function FARBFUNKTION(Zelle As String)
x1 = Thiscomponent.CurrentController.ActiveSheet
FARBFUNKTION = Hex(x1.getCellRangeByName(Zelle).CellBackColor)
End Function
einzig muß der Aufruf mittels String erfolgen, also:
=WENN(FARBWERT("A1")= "00FF00"; A1+A2; A1-A3)
da eine direkte Übergabe des Zellobjektes nicht möglich ist und ein möglicher Workaround komplizierter wäre als gleich einen String zu übergeben

oder auch
=(FARBWERT(A1) = Zell anzeige "00FF00"
weiß ich nicht was das bedeuten soll, eine gültige formel ist es nicht



Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von clag »

Hi Stephan,
Stephan hat geschrieben: oder auch
=(FARBWERT(A1) = Zell anzeige "00FF00"
weiß ich nicht was das bedeuten soll, eine gültige formel ist es nicht
in der Zelle soll der Farbwert von A1 angezeigt werden

damit man die Möglichkeit bekommt ggf 2 Zellen mit solchem Inhalt zu vergleichen

C1 =(FARBWERT(A1)
C2 =(FARBWERT(A2)

D3 = WENN(C1>C2);...;....)
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von clag »

Hallo Stephan,

erst einmal Danke für die Antwort und die Funktions() Vorlage

ich wollte schon jubeln, aber dann ist mir aufgefallen die FARBFUNKTION() tut leider noch nicht ganz so wie ich es gern hätte

1. die Formel aktualisiert sich leider nicht bei einer Berechnung, sondern nur über ctrl+shift+F9 aktualisieren ?
wie könnte man erreichen, das die Funktion auch bei einer Berechnung der Tabelle die ausgegebenen Werte aktualisiert?

2. die Formel lässt sich nicht ausdehnen, so das sich der Bezug anpasst, (liegt wohl daran das die Zelle als String übergeben wird ?)

3. könnte man auch eine R,G,B Ausgabe realisieren ?


ja, ich befürchte die Könner unter euch werden ob der vielen Fragen möglicherweise die Augen verdrehen ....
aber ich hoffe ihr habt nachsehen mit dem Basic Lehrling clag :)
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Karolus »

Hallo

zu 1. das ist halt so!

zu 2. Ruf die Funktion mal auf in der Form:
=WENN(FARBWERT(ZELLE("ADRESSE";A1))= "00FF00"; A1+A2; A1-A3)

zu 3. siehe in der OOohilfe nach RED, GREEN und BLUE

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von clag »

Hallo Karo,

zu 1. wenn die Antwort auch für Zeile2 definitiv njet ist,
womit hängt das zusammen, mit der selbst gestrickten Funktion, deren Aufbau, oder ?
kann man eventuell ein aktualisieren der Tabelle in/mit einer Formel erzwingen ?

zu 2. ahhh ....... geht ja doch :D

zu 3. werde ich tun

Danke........... :)
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Stephan »

zu 2. ahhh ....... geht ja doch


und warum sollte es nicht gehen? Ich hatte es doch sogar bereits erwähnt:

" ... da eine direkte Übergabe des Zellobjektes nicht möglich ist und ein möglicher Workaround komplizierter wäre als gleich einen String zu übergeben"
aber ich hoffe ihr habt nachsehen mit dem Basic Lehrling clag
gute Lehrlinge zeichnen sich immer auch durch ihre eigene Aktivität aus ...




Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von clag »

Hallo Stephan,
Stephan hat geschrieben:gute Lehrlinge zeichnen sich immer auch durch ihre eigene Aktivität aus ...
da gebe ich dir absolut recht.....
deswegen bin ich auch immer dabei, für mich neue Dinge (StarBasic) auszuprobieren und zu hinterfragen
aber vielleicht bist du der Meinung meine Frageaktivität ist nicht genügend ausgeprägt, dann will ich die gern noch forcieren. :lol:

zB was ist mit einer Antwort zu 1.

Ein guter Meister sorgt mit Erfolgserlebnissen bei dem Auszubildenden für die Motivation noch mehr wissen zu wollen,
und vermeidet Misserfolge durch gezielte und Wissensstand angemessene konkrete Anleitung :D
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Stephan »

vermeidet Misserfolge durch gezielte und Wissensstand angemessene konkrete Anleitung


genau darum bemühen sich hier Viele, wie oft waren in den letzen 3 Wochen in posts an Dich (von z.B. Karolus oder KOmma4) aber immer wieder Hinweise zu lesen der Art, in die Programmhilfe zu schauen, XRAY zu nutzen, bereits konkret an Dich gegebene Antworten zu berücksichtigen und Ähnliches ...

... geholfen hat das echt wenig, z.B. waren die Hinweise von Komma4 zu XRAY und meine konkrete Anleitung dazu, wieder einmal völlig in den Wind gesprochen, wenn ich jetzt z.B. wieder folgende Dinge lese:
3. könnte man auch eine R,G,B Ausgabe realisieren ?
zu 3. siehe in der OOohilfe nach RED, GREEN und BLUE
zu 3. werde ich tun
Obwohl ich Dir also eine fertige Lösung zu den Hex-Farb-Werten präsentiert habe, hast Du keine eigene Anstrengung unternommen selbst zu versuchen zu ergründen wie das mit RGB-Werten adäquat funktionieren könnte.
Stattdessen stellst Du eine Frage, die überflüssig ist - oder willst Du uns hier erzählen es bedurfte explizit des Hinweises von Karolus in die Hilfe zu schauen, damit Du weist das Du das tun solltest? Ich erlaube mir zu denken das Du das bereits vorher wußtest.

Auch z.B. DEine Antwort vom Di, 13.07.10 0:38 war insofern überflüssig, als das sie zwar bei mir Klarheit schafft, mir aber auch sagt das Du eigentlich in der Lage wärst selbst eine Antwort zu finden, denn diese läßt sich leicht aus meiner Antwort zu:
=WENN(( FARBWERT(A1)= 00FF00, A1+A2; A1-A3) ?
ableiten, da ich die Funktion FARBFUNKTION() inhaltlich nicht etwa 'irgendwie' gestaltet habe (dazu gäbe es bestimmt einige sinnvolle Varianten) sondern GANZ GENAU auf Deine konkrete Frage/Formel abgestimmt hatte.



Du solltest Dir bitte einmal überlegen das ein Forum Hilfe zur Selbsthilfe bietet und sich nicht als kostenloser Support versteht - was ja hier im Forum häufig genug bereits thematisiert wurde.


Gruß
Stephan
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von clag »

Stephan hat geschrieben:genau darum bemühen sich hier Viele,
stimmt ! fast alle
nur bei dir trifft es eher selten zu, deine die die ursprüngliche fachliche Frage betreffende Antwort ist meist äußerst knapp
und dem weniger versierten Anwender nicht oder nur schwer verständlich.

Aber das scheint das Prinzip deiner Antworten zu sein, Nachfragen provozieren um dann wieder mit irgend welchen Klugschei.ergesülz nachzulegen
Stephan hat geschrieben:hast Du keine eigene Anstrengung unternommen selbst zu versuchen zu ergründen wie das mit RGB...
.....
..Stattdessen stellst Du eine Frage, die überflüssig ist -
das sind alles reine, arrogante, selbstherrliche Mutmaßungen deinerseits.
Du weist nichts aber auch gar nichts darüber ob oder was ich unternommen habe!

Interessant dabei ist allerdings das du in diesen Teilen deiner Antworten dann immer sehr ausführliche darstellst was du glaubst alles besser zu wissen.
Nur fachliches ist absolut nichts mehr enthalten. Welche Defizite musst du kompensieren um so zu agieren ?.

Wenn du bei den fachlichen Antworten genau so ausführlich und langatmig vorgehen würdest, bräuchtest du nur selten zweimal antworten.
Stephan hat geschrieben:Du solltest Dir bitte einmal überlegen das ein Forum Hilfe zur Selbsthilfe bietet und sich nicht als kostenloser Support versteht
und was soll diese Satz ????

Wo ist bitte der Unterschied Support und Hilfe, und was soll der Hinweis "kostenlos" wenn es kein kostenloser Support ist was ist es dann ?
(im übrigen ist ja nicht so, das ich nur Fragen stelle, soweit möglich trage ich schon meinen Teil zu den Antworten bei)
Wenn dir meine Fragen zu unsachlich sind kannst du das natürlich gern sagen, dass sie Unwissenheit vermitteln liegt in der Natur der Sache.

Also was willst du eigentlich mit diesem immer wieder von dir nachgelegten nichts zu Sache beitragenden Geschreibe darstellen ?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Stephan »

und was soll diese Satz ????
DEr soll Dir sagen das einige hier empfinden, denn nicht umsonst stoßen Sie Dich mit der Nase immer wieder auf die Programmhilfe, XRAY und Ähnliches, das Du nicht, wie es in einem Forum das freiwillige Hilfe bietet üblich ist, mitdenkst, und Antworten auf Deine Fragen miterarbeitest, sondern das Du Dir einen 'schlanken Fuß' machst und alles und jedes erfragst, auch an Stellen wo Du durch eigenes Nachdenken selbst zu einer Lösung finden könntest.

Von länger anwesenden Nutzern wie Dir, der inzwischen mehrere hundert posts hat, wird man solches Verhalten umso mehr erwarten können und ebenso das Verständnis warum solches Verhalten wichtig ist.
Wo ist bitte der Unterschied Support und Hilfe, und was soll der Hinweis "kostenlos" wenn es kein kostenloser Support ist was ist es dann ?
Dieses Forum, und ähnliche Foren, unterscheiden sich von Support ganz wesentlich, nämlich darin das beim Support immer klar abgegrenzt ist wer hilft und wer Hilfe nachfragt.
Bei einem Forum wie diesem hier ist das anders, hier soll es so laufen (und muß es so laufen damit das Forum dauerhaft bestehen kann) das Frager sich selbst aktiv in das Finden von Antworten zu ihren Fragen einbringen.
(im übrigen ist ja nicht so, das ich nur Fragen stelle, soweit möglich trage ich schon meinen Teil zu den Antworten bei)
Dieses wiederum ist durch mich gänzlich unbestritten, nur da du das tust verstehe ich nicht warum Du sowenig Verständnis dafür entwickelst das hier erwartet wird das Du Dich selbst aktiv an der Beantwortung von Dir gestellter Fragen beteiligst und nicht immer triviale Nachfragen in Situationen stellst wo jeder sieht das Du eine Antwort selbst gefunden hätttest wenn Du nachgedacht hättest. Das ist das was Dir Hinweise auf die Programmhilfe, XRAY u.A. immer wieder 'durch die Blume' sagen wollen, nämlich 'bitte denke zunächst nach bevor Du unnötige Trivialfragen stellst'.


Mal ein abschließendes Wort, auch als Moderator:
Du bist lange hier im Forum, hast viele posts geschrieben und solltest eigentlich begreifen worum es mir hier geht. DEine ganze persönliche Angegriffenheit ist völlig fehl am Platze weil ich Dir nicht Böses will, sondern Dir nur sagen will korrigiere DEin Verhalten an den Stellen wo es nötig oder sinnvoll ist, und das sind KEINESWEGS sehr viele Dinge aber doch ein paar.
Ständig persönlich angegriffen auf solche Hinweise zu reagieren ist nicht angemessen und außerdem überflüssig, denn selbst wenn ich Dir was Schlechtes wollte, wäre mir meine Zeit dafür zu schade - was ich NICHT abwertend meine, sondern ganz sachlich denn ich habe eigentlich zu wenig Zeit um sie noch mit solcherlei Diskussionen zu vertun.



Gruß
Stephan
Benutzeravatar
Koala
**
Beiträge: 48
Registriert: Mi, 18.10.2006 12:58

Re: mittels "funktion" Zellen Farbe prüfen ?

Beitrag von Koala »

Stephan hat geschrieben:

Code: Alles auswählen

Function FARBFUNKTION(Zelle As String)
x1 = Thiscomponent.CurrentController.ActiveSheet
FARBFUNKTION = Hex(x1.getCellRangeByName(Zelle).CellBackColor)
End Function
einzig muß der Aufruf mittels String erfolgen, also:
=WENN(FARBWERT("A1")= "00FF00"; A1+A2; A1-A3)...
Super, genau das brauchte ich auch :)
Allerdings gibt die Funktion die Farbwerte OHNE führende Nullen zurück. Das ist zu beachten, wenn man z.B. auf Grün testen möchte.
Bei mir sieht der Aufruf zum Testen auf HG-Farbe Grün entsprechend so aus:

Code: Alles auswählen

=WENN(FARBFUNKTION(ZELLE("ADRESSE";A2)) = "ff00"; 1; 0)
EDIT
Nach dem Speichern und erneuten öffnen der Datei bekomme ich die Fehlermeldung:
"BASIC-Laufzeifehler Objektvariable nicht belegt" (und das ganze dann fast 3500 mal; in so vielen Zeilen wird die Farbfunktion genutzt)
Das öffnen des Makros bringt dann eine weitere BASIC-Fehlermeldung: Argument ist nicht optional (markiert ist dann die Zeile "FARBFUNKTION = Hex(x1....").
Da meine BASIC-Kenntnisse eher als nicht vorhanden anzusehen sind, schau ich nun ein wenig wie Schwein ins Uhrwerk.
Woran liegts? Die Forensuche nach diesen Fehlermeldungen hat mich nicht wirklich weiter gebracht.
Sven
Antworten