mittels "funktion" Zellen Farbe prüfen ?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: mittels "funktion" Zellen Farbe prüfen ?

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

von Koala » Mi, 04.08.2010 10:47

bst hat geschrieben:Hier mit OOo 3.2.1 geht das nicht, da sind 'bei diesem Weg' nur 'globale Makros' wählbar, nicht die Makros der aktuellen Datei.
Oh, tatsächlich! Das ist mir gar nicht aufgefallen.
bst hat geschrieben:Ja, das bewirkt indirekt eine Neuberechnung aller Formeln.
Habe dafür eine einfachere Lösung gefunden. Workbook_Open sieht bei mir nun so aus:

Code: Alles auswählen

Sub Workbook_Open()
	If Thiscomponent.SupportsService("com.sun.star.sheet.SpreadsheetDocument") Then
		Thiscomponent.calculateAll
	End If
End Sub
Leider bleibt es dabei, dass man diese Funktion beim öffnen des Dokumentes mit starten muss.

Jetzt frage ich mich, da ich das als globales Macro bei mir abgelegt habe, ob man OOo so anpassen kann, dass generell diese Funktion bei jeder Datei aufgerufen wird. Mir fällt momentan kein Grund ein, wieso man das nicht machen können sollte.

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

von bst » Di, 03.08.2010 15:07

Hi,
Nur der Vollständigkeit halber: <klugscheinssermodus>man kann auch über Macros verwalten - Zuordnen gehen</klugscheinssermodus>
Hier mit OOo 3.2.1 geht das nicht, da sind 'bei diesem Weg' nur 'globale Makros' wählbar, nicht die Makros der aktuellen Datei.
Die Funktion ersetzt alle '=' im aktiven Blatt
Ja.
Und das bewirkt dadurch das ausführen weiterer Makros (hier dann die Farbfunktion)?
Ja, das bewirkt indirekt eine Neuberechnung aller Formeln.
Ich überlege gerade, wenn das so ist, könnte man "Unbedinge Neuberechnung" [Strg+Shift+F9] nicht auch direkt (per Funktion) aufrufen ohne den Umweg über Ersetzungen zu gehen?
Möglich. F9 hat hier denn nicht funktioniert, Strg+Shift+F9 kannte ich nicht.

cu, Bernd

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

von Koala » Di, 03.08.2010 14:14

bst hat geschrieben:mit einem M.E. 'unschönen Trick' scheint das zu funktionieren.
Jap, funktioniert wunderbar. Besten Dank.
bst hat geschrieben:Weise das Makro Workbook_Open via Extras - Anpassen (!) - Ereignisse dem Ereignis Dokument Öffnen zu. Ggf. musst Du noch auf mehreren Tabellen Suchen & Ersetzen.
Nur der Vollständigkeit halber: <klugscheinssermodus>man kann auch über Macros verwalten - Zuordnen gehen</klugscheinssermodus> :)


Noch eine Verständnisfrage zu Workbook_Open.
Die Funktion ersetzt alle '=' im aktiven Blatt oder nur innerhalb einer Funktion einer Zelle?
Und das bewirkt dadurch das ausführen weiterer Makros (hier dann die Farbfunktion)?
Ich überlege gerade, wenn das so ist, könnte man "Unbedinge Neuberechnung" [Strg+Shift+F9] nicht auch direkt (per Funktion) aufrufen ohne den Umweg über Ersetzungen zu gehen?

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

von Stephan » Di, 03.08.2010 00:17

Könnte man das Thiscomponent-Objekt mit einer IF-Abfrage auf dessen vorhandensein/Inhalt prüfen und dann ansteller der Fehlermeldung lieber einen Leerstring, also "", ausgeben lassen?
Im Grundsatz so wie es Bernd beschreibt.


Gruß
Stephan


Anmerkung:
Ich schrieb nicht ohne Grund:
Ich bin im Moment im Unklaren ob es eine sonstige allgemeine Lösung gibt.
denn mir ist irgendwie so als gäbe es für das hier in Debatte stehende Problem eine Lösung (jenseits der Möglichkeit den Fehler abzufangen). Ich glaube irgendwie mich zu erinnern eine Lösung dafür schon einmal irgendwo gelesen (oder gar selbst entworfen) zu haben, ich komme nur momentan absolut nicht drauf. Aber vielleicht täusche ich mich auch nur und meine Erinnerung trügt mich.

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

von bst » Mo, 02.08.2010 16:20

Auch Hallo,

mit einem M.E. 'unschönen Trick' scheint das zu funktionieren.

Weise das Makro Workbook_Open via Extras - Anpassen (!) - Ereignisse dem Ereignis Dokument Öffnen zu. Ggf. musst Du noch auf mehreren Tabellen Suchen & Ersetzen.

cu, Bernd
--

Code: Alles auswählen

REM  *****  BASIC  *****

Function FARBFUNKTION(Zelle As String)
	on error goto ErrHandler 
	x1 = Thiscomponent.CurrentController.ActiveSheet
	FARBFUNKTION = Hex(x1.getCellRangeByName(Zelle).CellBackColor)
	exit function

ErrHandler:
	FARBFUNKTION = "#N/A"	
End Function

Sub Workbook_Open()
	Dim Sheet As Object
	Dim ReplaceDescriptor As Object

	'Print "1"	
	Sheet = Thiscomponent.CurrentController.ActiveSheet
	
	ReplaceDescriptor = Sheet.createReplaceDescriptor()
	ReplaceDescriptor.SearchString = "="
	ReplaceDescriptor.ReplaceString = "="
	
	'Print "2"	
   	Sheet.ReplaceAll(ReplaceDescriptor) 
	'Print "3"	
End Sub

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

von Koala » Mo, 02.08.2010 15:52

Stephan hat geschrieben:Ich bin im Moment im Unklaren ob es eine sonstige allgemeine Lösung gibt.
Könnte man das Thiscomponent-Objekt mit einer IF-Abfrage auf dessen vorhandensein/Inhalt prüfen und dann ansteller der Fehlermeldung lieber einen Leerstring, also "", ausgeben lassen?

Werd mich mal daran versuchen.

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

von Stephan » Mo, 02.08.2010 15:26

Woran liegts?
Daran das das Thiscomponent-Objekt noch ohne den richtigen (bzw. jeglichen) Inhalt ist, zu dem Zeitpunkt wo die Funktion innerhalb der Calc-Datei aufgerufen wird. Um mögliche Fehlermeldungen zu verhindern sollte deshalb die automatische Berechnung abgeschaltet sein.

Ich bin im Moment im Unklaren ob es eine sonstige allgemeine Lösung gibt.



Gruß
Stephan

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

von Koala » Mo, 02.08.2010 13:10

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.

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

von Stephan » Do, 15.07.2010 09:41

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

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

von clag » Di, 13.07.2010 18:50

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 ?

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

von Stephan » Di, 13.07.2010 16:16

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

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

von clag » Di, 13.07.2010 15:16

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

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

von Stephan » Di, 13.07.2010 14:25

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

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

von clag » Di, 13.07.2010 12:31

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........... :)

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

von Karolus » Di, 13.07.2010 11:57

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

Nach oben