Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1096to1100
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehlerwerte in Text umwandeln

Fehlerwerte in Text umwandeln
Bernd
Hallo,
gibt es eigentlich eine Möglichkeit, Fehlerwerte wie #DIV/0! in Text umzuwandeln per Formel aus der Formelbibliothek von Excel? Bisher ist mir das nur über die Aktion : Kopieren/Werte einfügen gelungen.
Welche Möglichkeiten kennt Ihr so?
Gruß
Bernd
AW: Fehlerwerte in Text umwandeln
24.08.2009 16:36:00
Jens
Hallo Bernd
Per Makro:
Sub tt() Dim zelle As Range For Each zelle In ActiveSheet.UsedRange If IsError(zelle) Then zelle = zelle.Value End If Next End Sub Gruß aus dem Sauerland
Jens
Makro sehr imperformant
24.08.2009 16:53:06
NoNet
Hallo Jens,
Du hast die Frage offenbar besser verstanden als ich, denn Bernd wollte ja tatsächlich die Fehlerwerte erhalten, nur aber als Text anstatt als Formel. Deine Lösung "passt" zwar, ist jedoch sehr inperformant (vor allem bei sehr großen/umfangreichen Tabellen) !
Hier mein Korrekturvorschlag (nur tatsächliche Fehlerzellen ersetzen) :
Sub FehlerWerteErsetzen()
Dim rngZelle As Range, rngBereich As Range
On Error Resume Next
Set rngBereich = Cells.SpecialCells(xlCellTypeConstants, 16)
If rngBereich Is Nothing Then
Set rngBereich = Cells.SpecialCells(xlCellTypeFormulas, 16)
Else
Set rngBereich = Union(rngBereich, Cells.SpecialCells(xlCellTypeFormulas, 16))
End If
If Not rngBereich Is Nothing Then
For Each rngZelle In rngBereich
rngZelle = rngZelle.Value
Next
End If
Set rngZelle = Nothing
Set rngBereich = Nothing
End Sub
Und falls viele (MATRIX-)Funktionen enthalten sind, könnte man auch temporär die automatische Berechnung deaktivieren !
Gruß, noNet
Anzeige
AW: Makro sehr imperformant
24.08.2009 17:14:41
Jens
Hi NoNet
Ich mußte auch erst kurz grübeln, was Bernd jetzt genau wollte, aber dann bin ich auch wieder vom Formel-Zug abgesprungen.
War ja erstmal nur die Frage, WIE sowas machbar ist. Auf eine elendig große Datei habe ich mich dabei erstmal nicht bezogen. Bzgl. der Performance stimme ich Dir aber voll und ganz zu. Ebenso zur Deaktivierung der autom. Berechnung.
Sagen wir mal so: Ich hab den Motor gestartet, Du hast Dich um das Chiptuning gekümmert
Gruß aus dem Sauerland
Jens
PS: Viele Wege führen nach Rom, der eine über die Autobahn, der andere über Stock und Stein
Anzeige
=wenn(ISTFEHLER(Berechnung);"";Berechnung)
24.08.2009 16:38:42
NoNet
Hallo Bernd,
Du kannst den Fehler "abfangen" :
=wenn(ISTFEHLER(DeineBerechnung);"";DeineBerechnung)
Gruß, NoNet
Ergänzung
24.08.2009 17:58:07
fcs
Hallo Bernd,
du kannst außer bei Verweis-Fehlern nur allgemein auf Fehler prüfen. Die anderen Fehlerarten kann man per Formel nicht in Text umwandeln, da ein Fehler im Ausgangswert im Ergebnis immer einen Fehlerwert ergibt.
Tabellenblattname: Tabelle1
F   G      H         I
3  0   0   #DIV/0!   #Fehler
4      W       #NV       #NV
Benutzte Formeln:
H3:  =F3/G3
H4:  =SVERWEIS(G4;A:E;5;FALSCH)
I3:  =WENN(ISTFEHLER(F3/G3);"#Fehler";F3/G3)
I4:  =WENN(ISTNV(SVERWEIS(G4;A:E;5;FALSCH));"#NV";SVERWEIS(G4;A:E;5;FALSCH))

Gruß
Franz
Anzeige
Dezenter Widerspruch : FEHLER.TYP()
24.08.2009 21:56:29
NoNet
Hallo Franz,
da muss ich Dir ein klein wenig widersprechen - schau mal hier :
Tabelle1

 ABC
1InhaltFehler.TYPFehler-Name
2#BEZUG!4BEZUG
3#DIV/0!2DIV/0
4#NV7NV
5#WERT!3WERT
6  Kein Fehler
79 Kein Fehler
8Text Kein Fehler

Formeln der Tabelle
ZelleFormel
B2=WENN(ISTFEHLER(A2); FEHLER.TYP(A2); "")
C2=WENN(ISTFEHLER(A2); WAHL(FEHLER.TYP(A2); "NULL";"DIV/0";"WERT";"BEZUG";"NAME";"ZAHL";"NV";"SONSTIGES"); "Kein Fehler")
B3=WENN(ISTFEHLER(A3); FEHLER.TYP(A3); "")
C3=WENN(ISTFEHLER(A3); WAHL(FEHLER.TYP(A3); "NULL";"DIV/0";"WERT";"BEZUG";"NAME";"ZAHL";"NV";"SONSTIGES"); "Kein Fehler")
B4=WENN(ISTFEHLER(A4); FEHLER.TYP(A4); "")
C4=WENN(ISTFEHLER(A4); WAHL(FEHLER.TYP(A4); "NULL";"DIV/0";"WERT";"BEZUG";"NAME";"ZAHL";"NV";"SONSTIGES"); "Kein Fehler")
B5=WENN(ISTFEHLER(A5); FEHLER.TYP(A5); "")
C5=WENN(ISTFEHLER(A5); WAHL(FEHLER.TYP(A5); "NULL";"DIV/0";"WERT";"BEZUG";"NAME";"ZAHL";"NV";"SONSTIGES"); "Kein Fehler")
B6=WENN(ISTFEHLER(A6); FEHLER.TYP(A6); "")
C6=WENN(ISTFEHLER(A6); WAHL(FEHLER.TYP(A6); "NULL";"DIV/0";"WERT";"BEZUG";"NAME";"ZAHL";"NV";"SONSTIGES"); "Kein Fehler")
A7=4+5
B7=WENN(ISTFEHLER(A7); FEHLER.TYP(A7); "")
C7=WENN(ISTFEHLER(A7); WAHL(FEHLER.TYP(A7); "NULL";"DIV/0";"WERT";"BEZUG";"NAME";"ZAHL";"NV";"SONSTIGES"); "Kein Fehler")
C8=WENN(ISTFEHLER(A8); WAHL(FEHLER.TYP(A8); "NULL";"DIV/0";"WERT";"BEZUG";"NAME";"ZAHL";"NV";"SONSTIGES"); "Kein Fehler")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß, NoNet
Anzeige
Wobei entsteht denn der F.Typ 8,...
24.08.2009 22:54:06
Luc:-?
..., NoNet,
ich konnte bisher nichts anderes als 1...7 entdecken! Zwar existieren in VBA unter den 2000ern Lücken (2000...2042), aber die hat MS wohl bis dato nicht gefüllt... ;-)
Gruß Luc :-?
VISTA = "Aussicht/Ausschau" (auf Zukunft)
24.08.2009 23:05:22
NoNet
Hey Luc,
ein Kollege berichtete mir heute in der Pause, dass er vor Jahren einmal eine MS-Fehlermeldung hatte, die sinngemäss lautete :
"Diese Fehlermeldung ist für zukünftige Versionen reserviert !"
Du siehst also : MS programmiert Fehler(meldungen) bereits vorausschauend/zukunftsweisend, worauf ja auch der Name VISTA (="Aussicht") hinweist ;-)
Lassen wir uns also überraschen, welchen FEHLER.TYP MS sich noch so alles einfallen lässt, z.Zt. sind wir ja erst bei (Windows) 7 - auf 8 müssen wir also wohl noch ein Weilchen warten ;-)
Gruß, NoNet
Anzeige
In meiner Kramkiste befinden sich auch Procs...
24.08.2009 23:18:17
Luc:-?
...mit ähnl Kommentaren, NoNet;
die meisten stehen da schon seit Jahren... ;-)
Gruß Luc :-?
AW: In meiner Kramkiste befinden sich auch Procs...
24.08.2009 23:33:53
MichaV
kann mich noch an Split und Join in der 5er VB- Version (XL97) erinnern. Die Intellisense hat aus split oder join schon Split oder Join gemacht, also die Grossbuchstaben umgewandelt. Aber einen Kompilierungsfehler gabs trotzdem. Da war auch was für zukünftige Versionen reserviert....
Gruß- Micha
Wie bitte ? SPLIT und JOIN in 5er Version ?
24.08.2009 23:47:15
NoNet
Hallo Micha,
welche "5er-Version" meinst Du denn ?
SPLIT und JOIN gibt es m.E. erst seit Excel 2000 (VBA 6.0) !
Kannst Du das bitte nochmal überprüfen ?
Gruß, NoNet
Eben, deshalb wohl der KompFehler! MS...
24.08.2009 23:59:49
Luc:-?
...hatte da wohl wieder mal was nicht geschafft — wen überrascht das — und wie so oft auf die nächste Vs verschoben...
Bis dato wird so etwas Simples wie Split ja auch nicht als xlStandardfkt angeboten; aber wozu gibt's denn VBA? Ganz simpel mit 3Zeiler gibt's zu Split dann eben Splitt oder deutlich anspruchsvoller dann noch Splintmade by do-it-yourself or CyWorXxl... ;-)
Gruß Luc :-?
Anzeige
Ja: SPLIT und JOIN in 5er Version nur angedeutet!
25.08.2009 08:14:29
MichaV
ja, es funzt erst seit VB6, aber gib mal in einer 5-er Version split ein. Bei mir wurde dann der erste Buchstabe umgewandelt wie bei bekannten Befehlen. Nur gabs dann beim kompilieren natürlich die Fehlermeldung...
Bedeutungslos, aber vielleicht ein Hinweis darauf dass MS die beiden Befehle in der 5er Version schon halb dabei hatte.
Ansonsten siehe Luc.
Gruß Micha
Hat bestimmt eine Frau programmiert ;-)
25.08.2009 13:50:03
NoNet
Hallo Micha,
habe es nun kapiert (wenn auch mangels XL97 nicht selbst nachvollziehbar).
[sexistischerModusEin]
Diese angedeutete SPLIT/JOIN-Funktion unter XL97 hat bestimmt eine Frau programmiert :
Erst eine(n) Heer/Herrn mit Verlockungen heiß machen, aber dann doch wieder kalt abblitzen lassen und alles auf "später" verschieben ;-))
[sexistischerModusAus]
Gruß, NoNet
Anzeige
Dann hätten die bei MS aber überwiegend...
25.08.2009 19:12:17
Luc:-?
...Pgmiererinnen oder viell auch Managerinnen, NoNet,
aber zu dem Zeitpkt kannte das ja keiner...
Aber auch Fertiges, nur Undokumentiertes gibt's ja bei MS zuhauf — zur Freude der Freaks und PC-Journalisten... ;-)
Gruß Luc :-?
AW: Fehlerwerte in Text umwandeln
24.08.2009 22:55:08
Bernd
Hallo zusammen,
zunächst mal danke für die vielfältigen Beiträge! Ich muss die erst mal in Ruhe "sondieren". Eine reine Formellösung wäre mir an sich sympathischer gewesen, weil mit der Datei auch andere Leute ab und zu arbeiten sollen, die von VBA noch nie was gehört haben. Das spezielle Problem ist, dass ich ein bestimmtes Feld auf "Fehler" überprüfen möchte, die alle mit dem berüchtigten "#" anfangen. Jetzt sind das leider aber nicht die bekannten Fehler aus Division durch Null oder N/V usw., es sind auch Fehler, die aus einer Verknüpfung per DDE-Schnittstelle kommen und so aussehen wie #NA . was steht für "not available". Dieser Fehler kommt aber als "Text" rüber. Schön wäre es halt gewesen, wenn man das zu überprüfende Feld "einfach" nach der 1. Stelle ("#") überprüft hätte (z. B mit einer Wenn-Bedingung und links (Feld;1) ) , aber das geht leider wegen der blöden unterschiedlichen Formate wohl nicht.
Ich lasse den Thread nochmal offen, vor allem weil sich ja auch eine kleine Diskussion zu Fehlertypen entwickelt hat.
Schönen Abend noch allerseits!
Gruß
Bernd
Anzeige
Danke, gelöst
25.08.2009 09:36:24
Bernd
Hallo nochmal,
danke für die Hilfestellungen. Ich konnte das ganze damit in "Griff" bekommen.
Gruß
Bernd

353 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige