Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
572to576
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
572to576
572to576
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ODER klappt nicht / welche Zellenlänge hat #Wert#

ODER klappt nicht / welche Zellenlänge hat #Wert#
20.02.2005 17:49:33
Reinhard
Hallo Wissende,
bei der Beantwortung von https://www.herber.de/forum/messages/572310.html schrieb ich mir nachfolgende Tabelle.
Excelfrage:
Ich finde nicht heraus warum in E6 der Fehler #Wert!# erscheint. Wie ich aus E7 erahne, muss es an dem "Oder" liegen, hab da aber keinen Plan warum.
Vbafrage:
Weiterhin brach mein Code mit dem ich hier was poste (siehe Nachspann) wegen E6 ab, also an den Stellen wo der Code die Länge oder den Inhalt von E6 lesen soll.
Wie schreibe ich z.B.
msgbox len(Range("E6"))
msgbox Range("E6")
um, damit da kein Fehler auftritt?
Vielen Dank für alle Tipps, Lösungen...
Tabellenblattname: Tabelle1
A |  B  | C | D |    E    |         F         | G |
1|   |   G | 6 | 6 |       6 |                   |   |
2|   |  GG | 7 | 7 |       7 |                   |   |
3|   | GGG | 1 | 1 |       1 |                   | 5 |
4|   |  BJ | 7 | 7 |       7 |                   |   |
5|   |   R | 5 | 5 |       5 |                   |   |
6|   |   e | 1 | 1 | #Wert!# | <--Wieso Fehler?  |   |
7|   |   e | 1 | 1 |       1 |                   |   |
Benutzte Formeln:
C1:  =WENN(WENN(B1="G";$G$3+1;WENN(B1="GG";$G$3+2;WENN(B1="BJ";$G$3+2;WENN(B1="GGG";$G$3+3;WENN(B1="R";$G$3;1)))))>7;1;WENN(B1="G";$G$3+1;WENN(B1="GG";$G$3+2;WENN(B1="BJ";$G$3+2;WENN(B1="GGG";$G$3+3;WENN(B1="R";$G$3;1))))))
C2:  =WENN(WENN(B2="G";$G$3+1;WENN(B2="GG";$G$3+2;WENN(B2="BJ";$G$3+2;WENN(B2="GGG";$G$3+3;WENN(B2="R";$G$3;1)))))>7;1;WENN(B2="G";$G$3+1;WENN(B2="GG";$G$3+2;WENN(B2="BJ";$G$3+2;WENN(B2="GGG";$G$3+3;WENN(B2="R";$G$3;1))))))
C3:  =WENN(WENN(B3="G";$G$3+1;WENN(B3="GG";$G$3+2;WENN(B3="BJ";$G$3+2;WENN(B3="GGG";$G$3+3;WENN(B3="R";$G$3;1)))))>7;1;WENN(B3="G";$G$3+1;WENN(B3="GG";$G$3+2;WENN(B3="BJ";$G$3+2;WENN(B3="GGG";$G$3+3;WENN(B3="R";$G$3;1))))))
C4:  =WENN(WENN(B4="G";$G$3+1;WENN(B4="GG";$G$3+2;WENN(B4="BJ";$G$3+2;WENN(B4="GGG";$G$3+3;WENN(B4="R";$G$3;1)))))>7;1;WENN(B4="G";$G$3+1;WENN(B4="GG";$G$3+2;WENN(B4="BJ";$G$3+2;WENN(B4="GGG";$G$3+3;WENN(B4="R";$G$3;1))))))
C5:  =WENN(WENN(B5="G";$G$3+1;WENN(B5="GG";$G$3+2;WENN(B5="BJ";$G$3+2;WENN(B5="GGG";$G$3+3;WENN(B5="R";$G$3;1)))))>7;1;WENN(B5="G";$G$3+1;WENN(B5="GG";$G$3+2;WENN(B5="BJ";$G$3+2;WENN(B5="GGG";$G$3+3;WENN(B5="R";$G$3;1))))))
C6:  =WENN(WENN(B6="G";$G$3+1;WENN(B6="GG";$G$3+2;WENN(B6="BJ";$G$3+2;WENN(B6="GGG";$G$3+3;WENN(B6="R";$G$3;1)))))>7;1;WENN(B6="G";$G$3+1;WENN(B6="GG";$G$3+2;WENN(B6="BJ";$G$3+2;WENN(B6="GGG";$G$3+3;WENN(B6="R";$G$3;1))))))
C7:  =WENN(WENN(B7="G";$G$3+1;WENN(B7="GG";$G$3+2;WENN(B7="BJ";$G$3+2;WENN(B7="GGG";$G$3+3;WENN(B7="R";$G$3;1)))))>7;1;WENN(B7="G";$G$3+1;WENN(B7="GG";$G$3+2;WENN(B7="BJ";$G$3+2;WENN(B7="GGG";$G$3+3;WENN(B7="R";$G$3;1))))))
D1:  =WENN(1+(B1="G")*$G$3+(B1="GG")*($G$3+1)+(B1="BJ")*($G$3+1)+(B1="GGG")*($G$3+2)+(B1="R")*($G$3-1)>7;1;1+(B1="G")*$G$3+(B1="GG")*($G$3+1)+(B1="BJ")*($G$3+1)+(B1="GGG")*($G$3+2)+(B1="R")*($G$3-1))
D2:  =WENN(1+(B2="G")*$G$3+(B2="GG")*($G$3+1)+(B2="BJ")*($G$3+1)+(B2="GGG")*($G$3+2)+(B2="R")*($G$3-1)>7;1;1+(B2="G")*$G$3+(B2="GG")*($G$3+1)+(B2="BJ")*($G$3+1)+(B2="GGG")*($G$3+2)+(B2="R")*($G$3-1))
D3:  =WENN(1+(B3="G")*$G$3+(B3="GG")*($G$3+1)+(B3="BJ")*($G$3+1)+(B3="GGG")*($G$3+2)+(B3="R")*($G$3-1)>7;1;1+(B3="G")*$G$3+(B3="GG")*($G$3+1)+(B3="BJ")*($G$3+1)+(B3="GGG")*($G$3+2)+(B3="R")*($G$3-1))
D4:  =WENN(1+(B4="G")*$G$3+(B4="GG")*($G$3+1)+(B4="BJ")*($G$3+1)+(B4="GGG")*($G$3+2)+(B4="R")*($G$3-1)>7;1;1+(B4="G")*$G$3+(B4="GG")*($G$3+1)+(B4="BJ")*($G$3+1)+(B4="GGG")*($G$3+2)+(B4="R")*($G$3-1))
D5:  =WENN(1+(B5="G")*$G$3+(B5="GG")*($G$3+1)+(B5="BJ")*($G$3+1)+(B5="GGG")*($G$3+2)+(B5="R")*($G$3-1)>7;1;1+(B5="G")*$G$3+(B5="GG")*($G$3+1)+(B5="BJ")*($G$3+1)+(B5="GGG")*($G$3+2)+(B5="R")*($G$3-1))
D6:  =WENN(1+(B6="G")*$G$3+(B6="GG")*($G$3+1)+(B6="BJ")*($G$3+1)+(B6="GGG")*($G$3+2)+(B6="R")*($G$3-1)>7;1;1+(B6="G")*$G$3+(B6="GG")*($G$3+1)+(B6="BJ")*($G$3+1)+(B6="GGG")*($G$3+2)+(B6="R")*($G$3-1))
D7:  =WENN(1+(B7="G")*$G$3+(B7="GG")*($G$3+1)+(B7="BJ")*($G$3+1)+(B7="GGG")*($G$3+2)+(B7="R")*($G$3-1)>7;1;1+(B7="G")*$G$3+(B7="GG")*($G$3+1)+(B7="BJ")*($G$3+1)+(B7="GGG")*($G$3+2)+(B7="R")*($G$3-1))
E1:  =WENN(ODER(ISTFEHLER(ausw);ausw>7);1;ausw)
E2:  =WENN(ODER(ISTFEHLER(ausw);ausw>7);1;ausw)
E3:  =WENN(ODER(ISTFEHLER(ausw);ausw>7);1;ausw)
E4:  =WENN(ODER(ISTFEHLER(ausw);ausw>7);1;ausw)
E5:  =WENN(ODER(ISTFEHLER(ausw);ausw>7);1;ausw)
E7:  =WENN(ISTFEHLER(ausw);1;ausw)
Namen in der Tabelle:
ausw:  =Tabelle1!$G$3+WAHL(FINDEN(INDIREKT("ZS(-3)";);"XXGXXGGXGGGBJXRXX")/3;1;2;3;2;0)
Gruß
Reinhard
Tabelle wurde eingefügt mit Code von https://www.herber.de/forum/technik/messages/1226.html 

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachtrag: in E6 steht das Gleiche wie in E1,E2,.
Reinhard
Hallo,
aber wegen der Problematik habe ich im Code kurzerhand
.range("E6")="'#Wert!#"
reingeschriebn.
In der Originaltabelle steht also auch in E6:
=WENN(ODER(ISTFEHLER(ausw);ausw>7);1;ausw)
Gruß
Reinhard
AW: ODER klappt nicht / welche Zellenlänge hat #Wert#
Luschi
Hallo Reinhard,
die Formelkonstruktion =WENN(ODER(ISTFEHLER(ausw);ausw&gt7);1;ausw) sieht zwar logisch
aus, hat einen entscheidenden Schönheitsfehler. Excel wertet grundsätzlich alle Teile
der Formel aus.
Selbst wenn ISTFEHLER(ausw) ein True ergibt und damit dieser Teil der ODER-Bebedingung
erfüllt ist, wird der 2. Teil davon auch noch geprüft.
Da kommt dann Fehler&gt7 heraus
und wird von Excel als Fehlerwert erkannt.
neue Formel:
=WENN(ISTFEHLER(ausw);1;WENN(ausw&gt7;1;ausw))
Gruß von Luschi
aus klein-Paris
Anzeige
AW: ODER klappt nicht / welche Zellenlänge hat #Wert#
Fred
Hi,
klär mich bitte mal auf, was klein-Paris ist.
Gruß Fred
OT Klaa paris
Reinhard
Hi Fred,
hier in Frankfurt/M wird der Stadtteil Heddernheim so bezeichnet, grade zu Faschingszeiten geht da schwer der Bär ab.
Woher der Begriff kommt, k.A., vielleicht von früher als hier die Franzosen herrschten.
Falls Luschi das meint.
Gruß
Reinhard
welche Zellenlänge hat #Wert#
Reinhard
Danke dir Luschi, habs jetzt verstanden.
Bliebe aber noch die Frage (in E6 steht #Wert!):
Weiterhin brach mein Code mit dem ich hier was poste (siehe Nachspann) wegen E6 ab, also an den Stellen wo der Code die Länge oder den Inhalt von E6 lesen soll.
Wie schreibe ich z.B.
msgbox len(Range("E6"))
msgbox Range("E6")
um, damit da kein Fehler auftritt?
Ich probiere jetzt mit CVerr herum,
aber auch mit sowas:

Sub tt()
Range("A1").Formula = "=B1/0"
Range("A7").Formula = "=B1/0"
Set Fehlerzellen = ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
For n = 1 To 10
If Application.Intersect(Range("A" & n), Fehlerzellen.Address) Then MsgBox n
Next n
End Sub

aber klappt noch nix.
Lieb wäre mir aber auch die VBA-Übersetzung von http://www.excelformeln.de/formeln.html?welcher=355 :
A1 ist die zu berechnende Zelle.
Vergebe den Namen
ZellAnsicht
bezogen auf:=ZELLE.ZUORDNEN(53;INDIREKT("A1";WAHR))
Mittels =ZellAnsicht. erhält man dann "#Div/0!#" als String (wenn in A1 dieser Fehler ist
Naja, mal hoffen das noch Meldungen kommen :-)
Gruß
Reinhard
Anzeige
workaround
Reinhard

Hallo Interessierte,
im folgenden Codeteil, das die größte Breite pro Spalte ermittelet und dies der
Variablen Breite(x) zuweist:
For s = 1 To anzS 'Schleife um pro Spalte die jeweilig höchste Breite zu ermitteln
Breite(s) = 0
For z = 1 To anzZ
If Len(.Cells(z, s).Value) > Breite(s) Then Breite(s) = Len(.Cells(z, s).Value)
Next z
Next s
kam ein VBA-Fehler durch .Cells(z,s).Value wenn in der Zelle kein Wert sondern ein
ExcelFehler wie z.B. #WERT!# stand. Len(.Cells(z,s).Value) ergab ebenfalls einen
VBA-Fehler, den habe ich analog zu hier umgangen.
Ich habe das jetzt wie nachfolgend gelöst würde aber auch gern andere, bessere Vorschläge
zur Lösung hören:
varErrConst = Array(xlErrDiv0, xlErrNA, xlErrName, xlErrNull, _
xlErrNum, xlErrRef, xlErrValue)
varErrLetter = Array("#DIV/0!", "#NV", "#NAME?", "#NULL!", _
"#ZAHL!", "#BEZUG!", "#WERT!")
For s = 1 To anzS
If Not IsError(.Cells(z, s).Value) Then
ZeilenSatz(z) = ZeilenSatz(z) & Right(String(Breite(s), " ") & .Cells(z, s).Value, Breite(s)) & " | "
Else
For n = 0 To 6
If .Cells(z, s).Value = CVErr(varErrConst(n)) Then
ZeilenSatz(z) = ZeilenSatz(z) & Right(String(Breite(s), " ") & varErrLetter(n), Breite(s)) & " | "
If Len(varErrLetter(n)) > Breite(s) Then Breite(s) = Len(varErrLetter(n))
End If
Next n
End If
Next s

Gruß
Reinhard
Anzeige
selbstgefunden *freu*
Reinhard
Hallo Interessierte,
bei Fehlermeldungen in einer Zelle ergibt Value einen vba-Fehler, aber Text nicht.

Sub tt()
Range("A1").Formula = "=B1/0"
MsgBox [a1].Value ' Fehler 13 Typen passen nicht
MsgBox [a1].Text ' Ok
MsgBox Len([a1].Value) ' Fehler 13 Typen passen nicht
MsgBox Len([a1].Text) 'Ok
End Sub

An sich logisch,aber das weiss ich erst ab jetzt, kommt auch daher dass ich "Text" an sich nie benutzt habe.
Egal, wieder was gelernt :-)
Gruß
Reinhard

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige