Live-Forum - Die aktuellen Beiträge
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

Daten einlesen in Userbox und #NV-Fehler

Daten einlesen in Userbox und #NV-Fehler
23.02.2005 09:55:43
Heinz
Hallo Forum,
ich habe folgende Probleme:
Ich benutze 2 Tabellenblätter mit Daten. In diese werden mittels Userboxen Daten eingetragen bzw. ausgelesen.
Auf dem zweiten Tabellenblatt hole ich per Sverweis Daten aus dem ersten Tabellenblatt.
1: #NV => Wenn nun der gesuchte Begriff auf dem Tabellenblatt 1 noch nicht enthalten ist kommt als Fehler #NV.
Daraus resultierend bekomme ich die folgende Fehlermeldung bei meiner Userboxabfrage: Laufzeitfehler Eigenschaft Value konnte nicht gesetzt werden. Typenkonflikt.
Ohne den #NV Fehler funzt die Userbox einwandfrei. Die Sverweisabfrage sieht folgendermaßen aus:
=WENN($E4="";"";WENN(SVERWEIS($E4;Komplett!$D$4:$P$4258;7)="";"";SVERWEIS($E4;Komplett!$D$4:$P$4258;7)))
Frage: wie kann ich den Fehler innerhalb der Sverweisabfrage unterbinden?
2: In meinen Userboxen werden die o.g. Tabellenblätter abgefragt. Nun werden in der Userbox innerhalb einer Combobox Daten eingelesen. Wird ein Datensatz ausgewählt erhalte ich in den dazugehörigen Textboxen die zugehörigen Daten angezeigt. Gleichzeitig brauche ich einen Vergleich zweier Daten. Es handel sich hierbei um einen Minimalstand und den aktuellen Bestand. Wird der Minimalstand unterschritten wird der Textfeldhintergrund rot. Da funzt auch weitestgehend, aber nicht bei allen Zahlen. Realisiert habe ich das folgendermaßen:

Private Sub ComboBox3_Change()
TextBox3 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 2)  ' Artikel
TextBox4 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 5)  ' Hersteller
TextBox5 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 6)  ' Bezeichnung
TextBox31 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 9) ' Lagerort
TextBox6 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 10) ' Regal
TextBox7 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 11) ' Fach
TextBox8 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 14) ' Bestand
TextBox9 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 12) ' Min
TextBox10 = Worksheets("Komplett").Cells(ComboBox3.ListIndex + 4, 13) ' Max
If TextBox8 < TextBox9 Then
TextBox8.BackColor = &HFF&
Else
TextBox8.BackColor = &H80000005
End If
End Sub

Wie geschrieben, es gibt Zahlenkombinationen die nicht funzen, warum auch immer. Beispiel: Min 3, Max 50, Bestand 21 => Ergenis Textfeld rot obwohl Min-Stand nicht unterschritten. Das geht hoch bis 29. Bei Bestand 30 zeigt Textfeld dann weiss.
Fragen: Wie kommt das? Ist das ein Fehler von Excel? Kann ich die Abfrage anders realisieren um diesen Missstand zu umgehen?
Puh. Das ist viel Zeugs ;-)
Danke im Voraus
Heinz

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten einlesen in Userbox und #NV-Fehler
23.02.2005 10:53:05
Anton
Hallo Heinz,
ich hab das Problem bei SVERWEIS gehabt.
Hier ist der Text aus der Hilfe:
Servus,
Anton
Zellfehlerwerte
Siehe auch Beispiele Zusatzinfo
Sie können mit der CVErr-Funktion einen Zellfehlerwert in eine Zelle einfügen oder den Wert einer Zelle auf einen Fehlerwert testen. Zellfehlerwerte können die nachfolgend aufgeführten XlCVError-Konstanten sein:
Konstante Fehlernummer Zellfehlerwert
xlErrDiv0 | 2007 | #DIV/0!
XlErrNA | 2042 | #NV
xlErrName | 2029 | #NAME?
XlErrNull | 2000 | #NULL!
XlErrNum | 2036 | #ZAHL!
XlErrRef | 2023 | #BEZUG!
XlErrValue | 2015 | #WERT!
Beispiel
In diesem Beispiel werden die sieben möglichen Zellfehlerwerte in die Zellen A1:A7 in Sheet1 eingefügt.
myArray = Array(xlErrDiv0, xlErrNA, xlErrName, xlErrNull, _
xlErrNum, xlErrRef, xlErrValue)
For i = 1 To 7
Worksheets("Sheet1").Cells(i, 1).Value = CVErr(myArray(i - 1))
Next i
In diesem Beispiel wird eine Meldung angezeigt, falls die aktive Zelle in Sheet1 einen Zellfehlerwert enthält. Sie können dieses Beispiel als Grundgerüst für eine Fehlerroutine für Zellfehlerwerte verwenden.
Worksheets("Sheet1").Activate
If IsError(ActiveCell.Value) Then
errval = ActiveCell.Value
Select Case errval
Case CVErr(xlErrDiv0)
MsgBox "#DIV/0! error"
Case CVErr(xlErrNA)
MsgBox "#N/A error"
Case CVErr(xlErrName)
MsgBox "#NAME? error"
Case CVErr(xlErrNull)
MsgBox "#NULL! error"
Case CVErr(xlErrNum)
MsgBox "#NUM! error"
Case CVErr(xlErrRef)
MsgBox "#REF! error"
Case CVErr(xlErrValue)
MsgBox "#VALUE! error"
Case Else
MsgBox "This should never happen!!"
End Select
End
Anzeige
AW: Daten einlesen in Userbox und #NV-Fehler
23.02.2005 12:57:20
Heinz
Hallo Anton,
hatte das schon probiert.
Hatte die Formel folgendermaßen geändert, aber das gleiche Ergebnis erhalten:
=WENN(ISTNV($E4);"";WENN($E4="";"";WENN(SVERWEIS($E4;Komplett!$D$4:$P$4258;7)="";"";SVERWEIS($E4;Komplett!$D$4:$P$4258;7))))
Leider reicht mir eine Fehlermeldung nicht, ich brauche die Vermeidung der Anzeige #NV im Tabellenblatt.
Gruß
Heinz
AW: Daten einlesen in Userbox und #NV-Fehler
MichaV
schick doch mal ne Beispieldatei
AW: Daten einlesen in Userbox und #NV-Fehler
23.02.2005 19:47:42
Heinz
Hallo Micha,
also ich hab ja bereits die Sverweis-Formel geschrieben.
=WENN($E4="";"";WENN(SVERWEIS($E4;Komplett!$D$4:$P$4258;7)="";"";SVERWEIS($E4;Komplett!$D$4:$P$4258;7))
Diese vergleicht eine Zelle der aktuellen Tabelle mit anderen Tabelle findet er dort den gleichen Inhalt, sucht er in einer bestimmten Spalte einen Wert und übernimmt diesen. Also ein ganz normaler Sverweis. Normal würde die Anzeige #NV nicht stören. Problematisch wird es halt bei der UserBox-Abfrage.
Dort habe ich eine UserBox in dieser habe ich eine Combobox die die gleiche Spalte einliest welche den Suchbegriff beinhaltet der auch bei Sverweis benutzt wird. Also um bei dem Beispiel zu bleiben liest er alle Werte der Spalte E ein.
Nun kann ich in der UserBox scrollen. Sobald ich einen der Werte anklicke werden die Daten der entsprechenden Reihe in unten drunter stehenden Textboxen angezeigt.
Sobald allerdings in einer der Zellen welche in den Textboxen angezeigt werden ein #NV enthalten ist steigt mir die UserBox mit der in der ersten Post geschriebenen Fehlermeldung aus.
Das soll natürlich nicht sein. Es soll dann halt einfach nichts in der Textbox angezeigt werden. Das sollte eigenbtlich am einfachsten mit einer Änderung der Formel in der Tabelle zu bewerkstelligen sein.
Solltest Du mit den beschriebenen Infos nicht weiterkommen, brauch ich dann mal Deine Email-addy, dann schick ich dir mal eine Beispieldatei.
Danke und Gruß
Heinz

Anzeige
AW: Daten einlesen in Userbox und #NV-Fehler
24.02.2005 10:14:12
MichaV
Hi,
=WENN(ISTNV(WENN($E4="";"";WENN(SVERWEIS($E4;Komplett!$D$4:$P$4258;7)="";"";SVERWEIS($E4;Komplett!$D$4:$P$4258;7))));"";WENN($E4="";"";WENN(SVERWEIS($E4;Komplett!$D$4:$P$4258;7)="";"";SVERWEIS($E4;Komplett!$D$4:$P$4258;7))))
oder kurz: wenn(istnv(DeineKompletteFormel);"";DeineKompletteFormel)
Dann kommt erstmal 100%ig kein NV in Deine Zelle.
Gruß!
AW: Daten einlesen in Userbox und #NV-Fehler
24.02.2005 19:48:05
Heinz
Hi Micha,
das probier ich dann mal aus und melde mich noch mal ob es funzt oder nicht.
Danke Dir
Gruß
Heinz

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige