Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
636to640
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
636to640
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige