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

Vlookup #NV und bereich festlegen

Vlookup #NV und bereich festlegen
20.06.2007 15:04:59
Karel
Hallo Forum,
Ich haben ein großen Mappe mit sehr viel sverweise bis 7.000 Zeilen und 15 spalten.
Daten werden im Tabelle2 spalte A reinkopiert und Daten werden dann aus Tabelle „Stammdaten“ geholt.
Möchte dies gerne mit Vlookup ausprobieren wegen Geschwindigkeit und Eingrenzung Datei große.
Ich haben unterstehende Code im Forum gefunden und habe diese etwas angepasst (VBA Neuling).
Reinkopieren von Daten in Spalte A geht, aber beim Daten wieder Löschen in Spalte A tritt Fehler #NV auf im Vlookup bereich. Und als zweite, wie kann ich im Blatt 2 dass Eingabenbereich festlegen (A23:A7000)
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim var As Variant
If Target.Column = 1 Then
With Application
var = .VLookup(Target.Value, Worksheets("Stammdaten").Columns("A:AB"), 2, 0)
If Not IsError(var) Then
Target.Offset(0, 1) = .VLookup(Target.Value, Worksheets("tab1").Columns("A:AB"), 2, 0)
Target.Offset(0, 3) = .VLookup(Target.Value, Worksheets("tab1").Columns("A:AB"), 3, 0)
End If
End With
End If
With Application
End With
End Sub


Viele dank
Freundlichen grüsse
Karel

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vlookup #NV und bereich festlegen
21.06.2007 08:17:26
fcs
Hallo Karel,
mit folgenden Anpassungen (ungetestet) wird der Bereich in dem das Makro automatisch die Werte einträgt zu sätzlich im Zeilenbereich eingeschränkt.
Wird der Inhalt in Spalte A gelöscht, dann wird der Inhalt in den Offsetzellen gelöscht.
Hoffe du kommst so weiter.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Dim var As Variant, zelle As Range
If Target.Column = 1 And Target.Row >= 23 And Target 


AW: Vlookup #NV und bereich festlegen
21.06.2007 09:26:44
Karel
Hallo Franz,
makro getestet und geht wenn ich nur einzele zelle bearbeiten.
Das Hauptproblem ist, dass ich in Berich A23:A7000 grossere datenmengen uber kopieren gleichzeitig einfügen und auch weider löschen muss.
bekommen dan Fehlermeldung
If Target.Column = 1 And Target.Row >= 23 And Target grusse
Karel

Anzeige
AW: Vlookup #NV und bereich festlegen
21.06.2007 20:35:47
Beate
Hallo,
könnte da das Row fehlen?:
If Target.Column = 1 And Target.Row >= 23 And Target.Row Gruß,
Beate

AW: Vlookup #NV und bereich festlegen
21.06.2007 22:12:11
fcs
Hallo Karel,
die Anmerkung von Beate ist korrekt. Unter Excel97 hab ich dann zusätzlich das Problem, dass die Zeile
var = .VLookup(zelle.Value, wksStamm.Columns("A:AB"), 2, 0)
Probleme macht, wenn der gesuchte Eintrag nicht vorhanden ist. (Ergebnis = Error). Möglich das VLookup bei neueren Excelversion nicht mehr über diesen Fehler stolpern.
Deshalb habe ich zusätzlich die Suche nach dem Zellwert eingebaut.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Dim var As Variant, zelle As Range, wksStamm As Worksheet, wks1 As Worksheet
If Target.Column = 1 And Target.Row >= 23 And Target.Row 


Anzeige
AW: Vlookup #NV und bereich festlegen
22.06.2007 13:53:23
Karel
Danke Franz und Beate,
ich blicke immer mehr durch macht sogar spass.
wenn gesuchte Eintrag nicht vorhanden wird diese abgefangen, kann men dass noch ergänzen mit wenn wert nicht gefunden dann, einträg mit Kürzel "KWV" = kein wert vorhanden
Grusse
Karel

AW: Vlookup #NV und bereich festlegen
22.06.2007 20:38:49
fcs
Hallo Karel,
um nicht vorhandene Werte zu kennzeichnen, muss "nur" eine Else-Anwiesung eingefügt werden, in der den Zellen der gewünschte Wert zugewiesen wird.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Dim var As Variant, zelle As Range, wksStamm As Worksheet, wks1 As Worksheet
If Target.Column = 1 And Target.Row >= 23 And Target.Row 


Die If-Bedingung kannst du jetzt auch etwas vereinfachen, es sei denn du bracht den Wert der Variablen "var" noch irgendwo.


If Not wksStamm.Range("A:A").Find(what:=zelle.Value, LookIn:=xlValues, _
LookAt:=xlWhole) Is Nothing Then 'Zeile erforderlich für Excel97
zelle.Offset(0, 1) = .VLookup(zelle.Value, wks1.Columns("A:AB"), 2, 0)
zelle.Offset(0, 3) = .VLookup(zelle.Value, wks1.Columns("A:AB"), 3, 0)
Else
zelle.Offset(0, 1) = "WNV"
zelle.Offset(0, 3) = "WNV"
End If


Anzeige
danke
22.06.2007 21:10:00
Karel
Hallo Franz,
Viele Dank für deine Hilfe, lösung lauft.
Danke
Karel

Erledigt oT
22.06.2007 21:42:00
.
ot

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige