Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Abfragge, ob VLookup Fehlerwert ergibt

Abfragge, ob VLookup Fehlerwert ergibt
Peter
Guten Tag
In einem Code ersetze - ich wenn gewisse Bedingungen erfüllt sind - einen Zellwert mit einem Wert, den ich mittels VLOOKUP abfrage.
Wenn nun im Lookuptable der entsprechende Wert nicht hinterlegt ist, möchte ich dies mit einer Message-Box anzeigen lassen. Ich habe versucht, als weitere Bedingung eine Abfrage hinzuzufügen, ob die WorksheetFunction einen Fehler ergibt, doch das scheint nicht zu klappen. Anstatt TRUE ergibt
IsError(rngZelle.Value = Application.WorksheetFunction.VLookup(rngZelle.Offset(0, 2), Range("FIBU_KTO"), 2, False)) wieder ein Fehlerwert.
Wie muss der Code lauten, dass ich die anstprechende Message-Box erhalte?
Bedingungen?
Len(rngZelle.Value) = 13 'String hat die Länge 13
Left(rngZelle.Value, 6) = "110000" oder Left(rngZelle.Value, 6) = "130000"
Application.WorksheetFunction.VLookup(rngZelle.Offset(0, 2), Range("FIBU_KTO"), 2, False) ergibt Fehlerwert
Vielen Dank für eine Antwort
Gruss, Peter
PS: Gescheiterter Versuch:
If Len(rngZelle.Value) = 13 And (Left(rngZelle.Value, 6) = "110000" Or Left(rngZelle.Value, 6) = "130000") And IsError(rngZelle.Value = Application.WorksheetFunction.VLookup(rngZelle.Offset(0, 2), Range("FIBU_KTO"), 2, False)) Then MsgBox rngZelle.Offset(0, 2) & " - Wert nicht definiert"
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Abfrage, ob VLookup Fehlerwert ergibt
19.07.2011 16:11:07
Rudi
Hallo,
If IsError(Application.VLOOKUP(rngZelle.Offset(0, 2), Range("FIBU_KTO"), 2, 0)) Then ...
Gruß
Rudi
AW: Abfrage, ob VLookup Fehlerwert ergibt
19.07.2011 16:52:55
Peter
Hallo Rudi
Vielen Dank!
Gruss, Peter
Etwas genauer?
19.07.2011 19:31:27
Erich
Hi Peter,
ist eventuell die Unterscheidung interessant, ob der Fehler entsteht, weil der Suchbegriff in der 1. Spalte von "FIBU_KTO"
nicht gefunden wird oder weil (wenn er gefunden wird) der Wert daneben in der 2. Spalte eine Fehlerwert ist?
Wenn ja, schau dir mal den folgenden Code an. A und B treffen die selbe Aussage,
C gibt die Info über einen Fehlerwert in der 2. Spalte:

Sub VLookup_Match()
Dim rngZelle As Range
Dim varW
Set rngZelle = Cells(1, 1)
' A
If IsError(Application.Match(rngZelle.Offset(0, 2), _
Range("FIBU_KTO").Columns(1), False)) Then _
MsgBox rngZelle.Offset(0, 2) & " - Wert nicht definiert"
' B
varW = Application.VLookup(rngZelle.Offset(0, 2), Range("FIBU_KTO"), 1, 0)
If IsError(varW) Then MsgBox rngZelle.Offset(0, 2) & _
" - Wert nicht definiert"
' C
varW = Application.VLookup(rngZelle.Offset(0, 2), Range("FIBU_KTO"), 2, 0)
If IsError(varW) Then MsgBox "'" & rngZelle.Offset(0, 2) & _
"' wurde gefunden," & vbLf & "aber der zugehörige Wert ist ein Fehlerwert:" & _
vbLf & CStr(varW)
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Etwas genauer?
19.07.2011 21:32:45
Rudi
Hallo,
A könnte man auch durch Application.Countif(...)=0 ersetzen.
Gruß
Rudi
Das Wetter spielt uns nicht gerade in die Hände ;-(. Ich habs aber noch im Kopf.
@Rudi: Ja, ist besser
20.07.2011 17:18:07
Erich
Hi Rudi,
ja, CountIf ist wohl der beste Ersatz für A bzw. B. Vergesse ich immer wieder. :-(
Nicht vergessen ist das CU. Es wird werden!
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Etwas genauer?
20.07.2011 18:35:33
Peter
Hallo Erich und Rudi
Vielen Dank für die Ausführungen und Präzisierungen.
Echt hilfreich!
Gruss, Peter

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige