falsche Zellinhalte durch SVERWEIS

30/10/2007 - 10:02 von KarinLabisch | Report spam
Hallo NG, bin relativer Excel-VBA-Neuling und auf folgendes Problem
gestoßen:

In einer Datei (Excel 2003) verwalte ich verschiedene Artikel-
Informationen wie Lieferant, Durchschnittspreis und auch Stücklisten
und zwar pro Artikel auf einem eigenen Tabellenblatt.
Durch folgendes Makro erstelle ich eine separate Liste mit den Artikel-
Nummern, -Bezeichnungen und Durchschnittspreisen:

Sub ListeErstellen()

Dim Liste As Worksheet
Dim TB2 As Worksheet
Dim i As Integer
Dim d As Long

Set Liste = Worksheets("Liste")
d = 2

For i = 3 To ThisWorkbook.Worksheets.Count

Set TB2 = Worksheets(i)
Liste.Cells(d, 1) = TB2.Cells(1, 2)
Liste.Cells(d, 2) = TB2.Cells(2, 2)
Liste.Cells(d, 3) = TB2.Cells(5, 2)
Liste.Cells(d, 4) = TB2.Cells(3, 2)
d = d + 1
Next i

End Sub

Auf diese Liste greife ich wiederum mit einem SVERWEIS
=WENN(B19<>"";SVERWEIS(B19;Liste!$A$2:$D$400;2);"")
zu, um in den Stücklisten die Bezeichnungen und Preise durch Eingabe
der Artikelnummer anzuziehen.

Wenn ich nun einen neuen Artikel irgendwo zwischendrin anlege und die
Liste mit o.g. Makro aktualisiere, dann werden in den Stücklisten die
falschen Artikelinformationen angezeigt und zwar bei allen Artikeln,
die in der Liste nach dem neuen Artikel auftauchen die Informationen
desselben Artikels (aus der Liste 17 Zeilen unter dem neu angelegten).
Wenn ich aber in der Liste an gleicher Position von Hand eine Zeile
einfüge und die Daten von Hand dort eingebe passiert nichts!

Hoffentlich ist meine Beschreibung nicht zu verwirrend und hoffentlich
ist da draußen irgendjemand, der mir helfen kann.
Verzweifelte Grüße aus Freiburg
 

Lesen sie die antworten

#1 Alexander Wolff
30/10/2007 - 10:08 | Warnen spam
Du mussst die Formel richtig einsetzen:

Aufsteigend sortierte SVERWEIS-Liste: =SVERWEIS(...;...;...)
Unsortierte SVERWEIS-Liste: =SVERWEIS(...;...;...;0)

Achtung: Die erste Syntax ist IMMER sehr gefàhrlich, wenn es darauf ankommt,
dass der Wert in der Liste wirklich vorhanden ist - und nicht etwa nur
innerhalb eines Intervalls vorhanden ist! Denn die erste Syntax gibt für den
Suchwert 42 den Wert zurück, der in der Spalte 10;30;50 dem Wert 30
entspricht - ohne Warnung.
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2

Ähnliche fragen