Fehlermeldungen abfangen/erkennen (gelöst)

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: Fehlermeldungen abfangen/erkennen (gelöst)

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von clag » Mo, 24.08.2009 07:27

Moin Leutz,
moin Balu und Stephan

gibt es, habt ihr eine Erklärung dafür:

1. wieso die bedingte Formatierung nach dem Muster von Stephan, nach einem Farbwechsel nicht mehr passt ?
nach dem ersten einrichten (Rot) funktioniert es sauber wenn ich dann die Tabelle von unten links nach oben rechts markiere und unter bedingten Format nur eine andere Farbe (Gelb)auswähle, passt es nicht mehr.

2. wieso das ausführen der benutzerdefinierten Funktion (wie von Stephan hier vorgestellt) so lahm ist ?
aus meinen Excel-Tagen kann ich mich entsinnen, man konnte ein Makro sichtbar oder unsichtbar ausführen und das hatte auch extrem Auswirkung auf die Geschwindigkeit mit der es abgearbeitet wurde, gibt es so eine Option eventuell auch bei OOoBasic?

3. das merkwürdige Verhalten beim Start bzw auch das Ausführen überhaupt nur nach einem Enter in der FormelZelle ?

ach, ich weiß ja, sind viele Fragen, :D

aber ich bin nun mal immer so neugierig und meist erst zufrieden wenn irgendetwas richtig gut funktioniert, vielleicht habt ihr ja noch die eine oder andere Idee ?

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von balu » So, 23.08.2009 17:02

Hallo Sterphan,

Code: Alles auswählen

->ODER(ISTFEHLER(A1);ISTFEHLER(B1);ISTFEHLER(C1);ISTFEHLER(A2);ISTFEHLER(B2);ISTFEHLER(C2);ISTFEHLER(A3);ISTFEHLER(B3);ISTFEHLER(C3))
es gibt Tage, da denkt man einfach nicht an die naheliegendste Lösung.
Danke, dass Du mich wieder daran erinnert hast.


Gruß
balu

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von clag » Sa, 22.08.2009 10:11

Hallo Stephan,

erst einmal Danke für deine Mühe und das Stück Code

prinzipiell funktioniert es auch aber
leider habe ich einige Schwierigkeiten damit
und weil ich keinen Plan von OOoBasic habe, berichte ich mal was mir aufgefallen ist.

die Formel scheint nur einmal nach dem ersten Enter aktiv zu suchen
ein ändern bzw entfernen des Fehlers bringt keine neue Ergebnisanzeige in der FormelZelle
nur eine Veränderung in der FormelZelle und ein erneutes Enter aktiviert die Formel erneut

nachdem der Fehler behoben ist, wird auch nach erneuter Suche die vorherige FehlerAdresse ausgegeben

auch dann wenn der zu durchsuchend Bereich in der Formel verkleinert wird und die FehlerAdresse nun außerhalb des zu durchsuchenden Bereiches liegt
nach beenden und neu Start von OOo gibt es eine BasicFehler aber der Wert ist weg die Zelle mit der Formel zeigt nichts an.

benötigte Zeit für die Fehlersuche in 100 Zeilen ca 00:01
benötigte Zeit für die Fehlersuche in 16.000 Zeilen 2:25
benötigte Zeit für die Fehlersuche in 65.000 Zeilen 14:30
(also schon ne ziemliche Spaßbremse) :lol:

kann man/du da was optimieren
sonst ist der praktische Nutzen doch eher gering

und damit du nicht wieder über bunte Bildchen meckerst habe ich diesmal die entfleischte .ods angekängt :o

edit und Nachtrag: wegen etlicher bedingter Formatierungen ist "MOTTCO" nötig
Dateianhänge
x-test2.7z
(120.65 KiB) 24-mal heruntergeladen

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von Stephan » Fr, 21.08.2009 21:17

da wäre die Variante mit "benutzerdefinierten Funktion" die die Adresse ausspuckt wohl doch die bessere
weiß ich nicht, aber zum Beispiel:

Code: Alles auswählen

Function FindeFehler(startspalte, startzeile, endspalte, endzeile, nummer_des_fehlers As Integer)
x = ThisComponent.CurrentController.ActiveSheet.Name
z = 0
f = 0
For i = startzeile To endzeile
	For j = startspalte To endspalte
		k = ThisComponent.Sheets().GetByName(x).GetCellByPosition(j,i).getError()
		If k <> 0 Then
			f = 1
			z = z + 1
			If z = nummer_des_fehlers Then Goto raus
		End If
	Next j
Next i
Goto ende
raus:
FindeFehler = ThisComponent.Sheets().GetByName(x).GetCellByPosition(j, i).AbsoluteName
ende:
End Function
und entsprechend in beliebiger Zelle aufrufen mit z.B.:

=FINDEFEHLER(0;0;3;3;1)

wobei erste Zahl der Nummer der linken Spalte des Bereiches entspricht in dem gesucht werden soll, die zweite Zahl der obersten Zeile dieses Bereiches, die dritte Zahl der letzten Spalte des Bereiches und die vierte Zahl der letzten Zeile des Bereiches.
Die Zählung für Zeilen und Spalten beginnt hierbei immer bei Null, im obigen Beispiel ist der Bereich also A1:D4.

Diee letzte Zahl ist die laufende Nummer des Fehlers, nach Deiner Vorgabe also eigentlich immer 1 (wobei mir der Sinn dieser Vorgabe bisher nicht einleuchtet, muß er aber auch nicht)


Gruß
Stephan

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von Stephan » Fr, 21.08.2009 20:13

scheint so
ist aber eigentlich nicht so, zumindest kenne ich keinen Grund warum das im Konkreten so sein sollte
leider wird beim Wechsel der Farbe in der bedingten Formatierung das Feintuning zerlegt !?
ohne Erklärung weiß ich nicht was gemeint ist
(aus den Abbildungen kann ich nichts ersehen, weil ich nur FArben sehe aber nicvht weiß warum die da sind - ich schrieb das gestern schon bei ähnlichen Abbildungen)
wie sehr belastet so eine bedingte Formatierung über alle 67.108.864 Zellen die Tabelle?????
Keine Ahnung, geschätzt hielte ich einige Sekunden bis mehrere Minuten im Bereich des Möglichen
(auf einem speziellen Computer bei mir (PIV 2,6 GHz 1GB RAM) dauert das Ganze bei einem Viertel der Zellenanzahl und leeren Zellen ca.30 Sekunden)

Es tut ja aber auch nicht Not das Du alle Zellen markierst (ich habe das geschrieben weil ich nicht wissen konnte wieviel Zellen Du nutzt) sondern es reicht die Zellen bedingt zu formatieren wo Du die bedingte Formatierung später benötigst.




Gruß
Stephan

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von clag » Fr, 21.08.2009 17:30

Hallo Stephan,
clag hat geschrieben:oder muss man das auch von unten recht nach oben links markieren ?
scheint so dauert dann aber auch immer noch 5-6 Minuten aber dann funktioniert es wie erwartet
leider wird beim Wechsel der Farbe in der bedingten Formatierung das Feintuning zerlegt !?
na muss man halt vorher wissen was man möchte
Fehler-markieren-großerFarbklecks3.png
Fehler-markieren-großerFarbklecks3.png (6.71 KiB) 528 mal betrachtet

wie sehr belastet so eine bedingte Formatierung über alle 67.108.864 Zellen die Tabelle?????

da wäre die Variante mit "benutzerdefinierten Funktion" die die Adresse ausspuckt wohl doch die bessere,
dann brauchte man auch nicht mehr nach dem Farbklecks suchen wenn man direkt die Adresse angezeigt bekommt wo der Bösewicht sitzt !

Vielleicht kannst du dich ja doch noch durchringen und diesbezüglich etwas Code generieren/posten :)

bitte bitte :D

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von clag » Fr, 21.08.2009 15:16

Hallo Stephan

wollte deine Anleitung für den (super großen) ) Farbklechs nachstellen aber nach
Stephan hat geschrieben:Kopiere die bedingte Formatierung aus B2 in alle Zellen des Blattes.

ctrl+a Inhalte einfügen Formate
friert mein OOo ein bzw ein CPU Kern geht auf 100% CPU Auslastung ? über 10Min

oder muss man das auch von unten recht nach oben links markieren ?

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von Stephan » Fr, 21.08.2009 13:43

Das weiß ich nicht, würd aber wohl sagen, nein.
Schreibe in B2:

Bedingung 1
->Formel ist
->ODER(ISTFEHLER(A1);ISTFEHLER(B1);ISTFEHLER(C1);ISTFEHLER(A2);ISTFEHLER(B2);ISTFEHLER(C2);ISTFEHLER(A3);ISTFEHLER(B3);ISTFEHLER(C3))
->Zellvorlage ->Pink (oder wie auch immer)

Kopiere die bedingte Formatierung aus B2 in alle Zellen des Blattes.

Markiere B1 und lösche in der Formel der bedingten Formatierung alle Ausdrücke mit fehlerhaften Referenzen, aus:

ODER(ISTFEHLER(A#REF!);ISTFEHLER(B#REF!);ISTFEHLER(C#REF!);ISTFEHLER(A1);ISTFEHLER(B1);ISTFEHLER(C1);ISTFEHLER(A2);ISTFEHLER(B2);ISTFEHLER(C2))

wird also:

ODER(ISTFEHLER(A1);ISTFEHLER(B1);ISTFEHLER(C1);ISTFEHLER(A2);ISTFEHLER(B2);ISTFEHLER(C2))

Kopiere diese bedingte Formatierung in alle Zellen der ersten Zeile.

Markiere A2 und verfahre sinngemäß wie gerade mit B1, kopiere jedoch in Spalte A.
Markiere IV2 und verfahre sinngemäß wie gerade mit B1, kopiere jedoch in Spalte IV.
Markiere B65536 und verfahre sinngemäß wie gerade mit B1, kopiere jedoch in Zeile 65536.

Korrigiere sinngemäß wie gerade geschehen nun nochj die 4 Eckzellen des Blattes (A1, IV1, A65536, IV65536).

Das sollte es gewesen sein um jeweils bei einer fehlerbeinhalteten Zelle einen 9x9 Zellen großen 'Fleck' zu erzeugen.


Anmerkung:
Die Spalten IV gelten nur für älteres OOo mit 256 Spalten in neueren Versionen (1024 Spalten) lautet die entsprechend zu berücksichtigende Spaltenbezeichnung AMJ




Gruß
Stephan

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von balu » Fr, 21.08.2009 11:46

Hallo Clag,

deine Idee mit doppelten Bedingung bring es jetzt tiptop, so hatte ich mir das vorgestellt !
Schön das es dann bei dir auch geklappt hat :D. Denn ich hat schon die Befürchtung, dass unter OOo3.1.1 rc1 vielleicht ein anderes Ergebnis dabei rauskommt.

Auch wenn die Lösung etwas zu spät gekommen ist, so könnte sie vielleicht in Zukunft für andere von Interesse sein. Deshalb seh ich das auch nicht so enge :wink:

könnte man das gewählte Format
auf die Nachbar Zellen anwenden so dass 5 oder 9 Zellen eingefärbt werden?
damit der Farbklecks großer wird ?
Das weiß ich nicht, würd aber wohl sagen, nein.


Gruß
balu

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von Stephan » Fr, 21.08.2009 11:15

danke für die so exakte Auskunft
Exakt? Ich habe hier eine rein grundlegende Antwort gegeben, weil ich ohne genauere Angaben keine konkrete Antwort geben kann - warum reagierst Du darauf so 'polemisch'?
wenn also jemand hier mit liest, der gewillt ist mir zu zeigen wie ich das am besten realisiere, wäre das Super !
Ich wäre 'gewillt' gewesen, aber wenn ich Deinen Tonfall lese vergeht mir die Lust.

Wir sind gestern, für die Verhältnisse eines Forums auch nur sehr gering, aneinandergeraten - für mich ist das eine Ewigkeit her.
Falls es Dir wichtiger ist alte Differenzen zu pflegen, statt sie zu vergessen muß das so sein, dagegen das Du mir hier scheinbar zum Vorwurf machst das ich 'exakt' antworte kann ich mich jedenfalls schlecht verteidigen.


inhaltlich möchte ich jedoch nochmal versuchen zu verdeutlichen warum ich mich so exakt ausgedrückt hatte:

Schau Dir bitte Datenbankbereiche und deren VERHALTEN an, dann wird Dir klar warum ich bei der bedingten Formatierung so strikt unterschieden hatte. Der Unterschied ist das die 'Speicheung der Information' bei z.B. Datenbankbereich, im Gegensatz zu bedingter Formatierung in logischer Hinsicht ganz anders ist:
bei einem Datenbankbereich wird die Information der Markierung selbst extra gespeichert (also sowas wie A1:C100), es bleibt also dauerhaft sowas wie ein 'Äquivalent der Markierung' gespeichert.
Bei bedingter Formatierung ist das völlig anders, weil die bedingte Formatierung nur eine Eigenschaft der Zelle ist und in welcher Markierung sich die Zelle befand zum Zeitpunkt als die bedingte Formatierung gemacht wurde wird nicht gespeichert, die Markierung ist hier einfach 'Schall und Rauch', das habe ich versucht zu verdeutlichen. Der Punkt ist das wenn ich Zellen A1 bis D1 markiere und dann eine bedingte Formatierung anbringe oder ob ich Zellen D4 bis D1 markiere und auch eine bedingte Formatierung anbringe das hinterher (bezüglich Zelle D1) ununterscheidbar ist welche Markierung vorlag als Zelle D1 ihre bedingte Formatierung erhielt.

Wie fein in solchen Dingen die Unterschiedene sind (weshalb manchmal wirklich Exaktheit nötig ist) siehst Du beispielsweise daran das obige Aussage nur dann zutrifft wenn Du, wie angegeben, Zelle D4 bis D1 markiert (also von 'unten' nach 'oben') jedoch nicht wenn Du Zelle D1 bis D4 markierst (also von 'oben' nach 'unten').



Gruß
Stephan

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von clag » Fr, 21.08.2009 09:47

Hallo Stephan
clag hat geschrieben:1. besteht die Möglichkeit die Adresse der oder ersten "FehlerZelle" zu ermitteln bzw als Ergebnis in einer anderen Zelle auszugeben?
Stephan hat geschrieben:Ja, z.B. mittels einer benutzerdefinierten Funktion.
danke für die so exakte Auskunft,
wenn also jemand hier mit liest, der gewillt ist mir zu zeigen wie ich das am besten realisiere, wäre das Super !
clag hat geschrieben:2. die Bedingte Formatierung bezieht doch sich normalerweise auf den markierten Bereich der aktiven Tabelle,
Stephan hat geschrieben:Nein, eine bedingte Formatierung bezieht sich auf die Zellen für die sie eingetragen ist
2. die Bedingte Formatierung bezieht doch sich normalerweise auf den "während ihrer eingabe" markierten Bereich der aktiven Tabelle,
hätte ich auch schreiben können,
aber dann hättest du doch keinen Grund gehabt, mit folgender Erklärung zu punkten.
Stephan hat geschrieben:Ich kann nur versuchen klarzustellen: Bedingte Formatierung und Eintragen der bedingten Formatierung sind zwei völlig verschiedene Dinge. Zum Eintragen der bedingten Formatierung ist wie zum Eintragen diverser Dinge eine Markierung des Objekts nötig für die sie angewendet werden sollen, nur daraus zu schliessen das eine bedingte Formatierung nur für Markierungen funktioniert ist so falsch wie zu sagen das Fettformatierung nur für einen markierten Text funktioniert, dennn wahr ist vielmehr das ein fett formatierter Text die meiste Zeit nicht markiert (und trotzdem fett) ist und nur einen kurzen Moment markiert, nämlich zu demn Zeitpunkt wo die Formatierung angebracht wird.
clag hat geschrieben:könnte man das ohne markieren auf die ganze Tabelle anwenden !?
Stephan hat geschrieben:Prinzipiell ja (mittels Makro) nur wo ist da der Vorteil?
1. um sicher zu sein das alles erfasst wird
2. habe ich immer wieder Probleme damit zu erkennen auf welchen Bereich ein bedingte Formatierung wirkt, wenn es nicht in der Tabelle markiert ist, jedenfalls habe ich noch keinen Weg gefunden das anzuzeigen.
3. ein Makro ist zu aufwändig, ein ctrl+a tut's ggf auch.

aber nochmal Danke für deine super exakten Angaben

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von Stephan » Fr, 21.08.2009 08:12

1. besteht die Möglichkeit die Adresse der "FehlerZelle" zu ermitteln bzw als Ergebnis in einer anderen Zelle auszugeben?
Ja, z.B. mittels einer benutzerdefinierten Funktion.
2. die Bedingte Formatierung bezieht doch sich normalerweise auf den markierten Bereich der aktiven Tabelle,


Nein, eine bedingte Formatierung bezieht sich auf die Zellen für die sie eingetragen ist
könnte man das ohne markieren auf die ganze Tabelle anwenden !?
Prinzipiell ja (mittels Makro) nur wo ist da der Vorteil?

Ich kann nur versuchen klarzustellen: Bedingte Formatierung und Eintragen der bedingten Formatierung sind zwei völlig verschiedene Dinge. Zum Eintragen der bedingten Formatierung ist wie zum Eintragen diverser Dinge eine Markierung des Objekts nötig für die sie angewendet werden sollen, nur daraus zu schliessen das eine bedingte Formatierung nur für Markierungen funktioniert ist so falsch wie zu sagen das Fettformatierung nur für einen markierten Text funktioniert, dennn wahr ist vielmehr das ein fett formatierter Text die meiste Zeit nicht markiert (und trotzdem fett) ist und nur einen kurzen Moment markiert, nämlich zu demn Zeitpunkt wo die Formatierung angebracht wird.



Gruß
Stephan

Re: Fehlermeldungen abfangen/erkennen (gelöst)

von clag » Fr, 21.08.2009 07:57

Moin Leutz,
moin balu,

mir sind noch zwei weitere Ideen durch den Kopf gegangen die ich mir nicht beantworten kann

1. besteht die Möglichkeit die Adresse der oder ersten "FehlerZelle" zu ermitteln bzw als Ergebnis in einer anderen Zelle auszugeben?
die farbige Markierung in der zweiten Tabelle wo auch alle Formeln eingefärbt werden ist eigentlich nicht nötig, man sucht doch nur nach der auslösenden "FehlerZelle"
2. die Bedingte Formatierung bezieht doch sich normalerweise auf den markierten Bereich der aktiven Tabelle, könnte man das ohne markieren auf die ganze Tabelle anwenden !?

Re: Fehlermeldungen abfangen

von clag » Do, 20.08.2009 21:01

Hallo Balu,

Tä täää
du ahnst es schon ne ?

deine Idee mit doppelten Bedingung bring es jetzt tiptop, so hatte ich mir das vorgestellt !
jetzt kann man auf 200% Ansichtgröße stellen und mit pg down durch die Tabelle springen
und man braucht sich nur auf einen roten Punkt konzentrieren
Fehler-markieren+finden-08a-erfolg.png
Fehler-markieren+finden-08a-erfolg.png (10.84 KiB) 641 mal betrachtet
einen erheblichen Nachteil hat die Formel allerdings, sie kommt für mich 2Tage zu spät,
damit hätte ich etliche Stunden Quälerei auf ein paar Minuten reduzieren können :?
aber da kannst du ja nix für :lol:

eine Sache könnte man noch optimieren, könnte man das gewählte Format
auf die Nachbar Zellen anwenden so dass 5 oder 9 Zellen eingefärbt werden?
damit der Farbklecks großer wird ?

ansonsten ist die Lösung Spitze

Re: Fehlermeldungen abfangen

von Stephan » Do, 20.08.2009 17:48

der gute, meist recht entspannte balu und ich wir verstehen uns ganz gut
Prima, dann verlegt doch Deine Konversation auf PN.
aber mir permanent etwas mieses zu unterstellen
das habe ich nicht getan, warum auch sollte ich, denn ersten kenne ich Dich nicht und zweitens hätte ich nichts davon Dir etwas zu unterstellen.
Ich habe versucht darauf aufmerksam zu machen das DEin Kommunikationsstil nicht besonders effizient ist, denn Du gibtst beiteiligten Mitlesern schlicht zu wenig Fakten. Die Stärke eines Forums ist jedoch wenn möglichst Viele sich DEines Problems annehmen, denn das bringt Dir schnell und umfassend Hilfe.

ja auch ich schüttelte mit dem Kopf, als ich feststellte dass sich die 3.x mit meinem ersten Vorschlag anders verhielt und andere Resultate lieferte, als die 2.x. Wer denkt denn schon immer daran, dass es an einigen Stellen zwischen den beiden Versionen frapirende Unterschiede gibt die man berücksichtigen muss (soll)?


Also ich nicht, das Ganze war so banal das ich mir nicht einmal die Mühe gemacht habe dEine Antwort im Detail zu prüfen, weil der FRager entweder nicht damit zurecht kommt oder zu keinem richtigen Ergebnis kommt - nur das ist die FRage das er das dann auch einmal klar sagt.
Auch wenn Clag keine Beispieldatei angehängt hatte, so war zumindest für mich an Hand der Screenshots schon ersichtlich, dass er meine ersten Vorschläge in die Tat umgesetzt hatte und dabei Probleme hatte, die ich reproduzieren konnte.
Wo kann denn irgendjemand aus den Screenshoots etwas Anderes entnehmen als das dort einige Zellen eingefärbt sind? Nirgens ist zu ersehen wie die bedingte Formatierung lautet und somit gibt es keine Anhaltspunkt dafür wo der Fehler im Konkreten ist - man kann also nur raten - ist das sinnvolles Vorgehen oder ist es nicht eher sinnvoll auf Grundlage von Fakten zu antworten?
Und woher soll das einer wissen, der noch nicht so lange mit einem Tabellenkalkulations Programm arbeitet?
Hast Du mal gelesen was mich auf die Palme gebracht hat? Es war die Tatsache lesen zu müssen das hier ein Nutzer Deine Lösung anscheinend nicht einmal ausprobiert hat, gleichzeitig aber schreibt sie passe nicht so richtig.

Ja, es ist ein Riesen-Unterschied ob jemand hier schreibt:

'Ich weiß nicht wie ich den Vorschlag umsetzen soll.'

oder:

'Ich habe versucht es nachzuvollziehen schaffe es aber nicht.'

Beides wäre OK und normal.

Aber die Mitlesenden indirekt wissen zu lassen das man sich nicht einmal die Mühe macht, deren Mühe dadurch zu würdigen das man zumindest angebotene Lösungen einmal durchprobiert halte ich nicht für in Ordnung.

Und gerade weil ich das tue war es mir wichtig jedes diesbezügliche Mißverständnis auszuschliessen, denn ich kann ja die Aussage:
da du mich nun so angepiekt hast habe ich das mit der bedingten Formatierung noch ausprobiert
ja wirklich mißverstanden haben.
Antwort darauf bekam ich jedoch nicht, womit mir nur eine Annahme bleibt, nämlich die dass ich richtig vermutet habe.

Und nun such ich mir wieder ein kühles Plätzchen.
Solche Sätze solltest Du ganz schnell vergessen!



Gruß
Stephan

Nach oben