Fehlermeldungen abfangen/erkennen (gelöst)

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

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

Re: Fehlermeldungen abfangen

Beitrag von clag »

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) 628 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
LG
clag

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

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von clag »

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

Beitrag von Stephan »

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
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von clag »

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

Beitrag von Stephan »

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
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von balu »

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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von Stephan »

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
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von clag »

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 ?
LG
clag

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

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von clag »

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

Beitrag von Stephan »

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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von Stephan »

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
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von clag »

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) 23-mal heruntergeladen
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von balu »

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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
clag
********
Beiträge: 3570
Registriert: Di, 27.01.2009 15:30

Re: Fehlermeldungen abfangen/erkennen (gelöst)

Beitrag von clag »

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 ?
LG
clag

nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Antworten