Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VLookUp in "Unter-Sub"

Forumthread: VLookUp in "Unter-Sub"

VLookUp in "Unter-Sub"
18.07.2005 14:18:05
eres
Hallo Excel-Gurus,
mal wieder verstehe ich mein Excel nicht. Habe in einem Modul eine Sub. Darin enthalten ist u.a. folgende Schleife:
Do While ActiveCell() ""
If IsError(WorksheetFunction.VLookup(ActiveCell.Value, _
Worksheets("Mandanten").Range("B2:F10"), 5, 0)) Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Die Schleife funktioniert prima. Lagere ich jetzt jedoch diesen Teil in eine andere Sub aus, so passiert beim Aufruf folgendes:
Existiert der zu suchende Wert im angegebenen Bereich, läuft die Schleife weiter. Enthält ActiveCell.Value jedoch eine Ausprägung, die im zu durchsuchenden Bereich nicht vorhanden ist, so springt das Programm sofort aus der IF-Schleife aus und fährt fort an der Stelle, wo die Unterprozedur aufgerufen wurde.
Hat jemand eine Idee, wieso der Code ausgelagert in einer Unter-Sub nicht mehr läuft wie vorher ?
Vielen Dank im voraus und Gruss
eres
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VLookUp in "Unter-Sub"
18.07.2005 16:32:25
Erich
Hallo erse,
steht vor der Auslagerung oberhalb deiner Do-Schleife ein "On Error Resume Next" oder ähnliches? Ohne diese Anweisung läuft bei mir dein Code auf einen Fehler, wenn VLookup den gesuchten Wert nicht findet.
Vielleicht hast du in der Oberroutine das "On Error Resume Next" vor dem Aufruf der neuen Sub stehen. Dann wird aber, sobald in der Sub ein Fehler auftritt, der gesamte Call beendet.
In der Oberroutine wird "On Error Resume Next" vermutlich nicht mehr gebraucht, die Anweisung sollte in der neuen Sub vor der ausgelagerten Do-Schleife stehen.
Noch eine Bemerkung:
Die Funktion IsError in der Anweisung
If IsError(WorksheetFunction.VLookup(ActiveCell.Value, _
Worksheets("Mandanten").Range("B2:F10"), 5, 0)) Then
hat bei mir keine Wirkung. Du könnstest sie auch ersetzen z. B. durch
If WorksheetFunction.VLookup(ActiveCell.Value,
Worksheets("Mandanten").Range("B2:F10"), 5, 0) = "" Then
oder besser
If WorksheetFunction.VLookup(ActiveCell.Value,
Worksheets("Mandanten").Range("B2:B10"), 1, 0) = "" Then
Grüße aus Kamp-Lintfort
Erich
Anzeige
AW: VLookUp in "Unter-Sub"
19.07.2005 08:34:19
eres
Hallo Erich,
es lag am "on error resume next". Habe den Code entsprechend umgebaut und auch Deinen Tipp bezüglich Vlookup und iserror berücksichtigt.
1000-Dank für die schnelle und treffsichere Analyse/Hilfe.
Gruss an den Niederrhein
eres
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige