Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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
Inhaltsverzeichnis

SVERWEIS in VBA - aber nicht alleine

SVERWEIS in VBA - aber nicht alleine
24.10.2017 15:50:46
Wokesay
Hallo,
ich habe eine Formel um einen Zellenwert mit Werten einer Liste zu vergleichen, also eine Klassische SVERWEIS Abfrage.
Nun würde ich diese gerne in VBA Code wandeln, da die Tabelle nicht gesperrt werden darf und sonst unnötig die Datenqualität leidet.
Die Formel lautet: =WENNFEHLER(WENN(SVERWEIS(A2;'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH);SVERWEIS(A2;'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH);"");"")
Am liebsten sogar kein einfügen der Formel in die passende Zelle, sondern nur das Ergebnis dort lassen :)
In A stehen Kundennummern z.b. 8647169
in B soll das Ergebnis stehen
in der Mappe KBK
steht in A eine Auswahl von Kundennummern
in B jeweils der zu übernehmende Wert z.b. 1,2,3
Kann mir dabei jemand helfen?
Ich verzweifel hier seit ca 4 Stunden :P
VG Timo

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SVERWEIS in VBA - aber nicht alleine
24.10.2017 16:17:39
Luschi
Hallo Wokesay,
für die Tabellefunktion SVerweis() gibt es auch eine Vba-Variante WorksheetFunction.VLookup().
Hier ein kleines Beispiel dazu:
https://www.herber.de/bbs/user/117197.xlsm
Gruß von Luschi
aus klein-Paris
PS: 4 Stunden probieren?!? Da hätte doch googeln mit 'sverweis Vba' mehr gebracht!
AW: SVERWEIS in VBA - aber nicht alleine
24.10.2017 16:20:03
Wokesay
Hallo Luschi,
ich habe wohl google bemüht, aber bin genau an deinem Beispiel hängen geblieben...
Ich habe in den 4h versucht meine ganze Formel in VBA Code umzubauen.
VG Timo
AW: SVERWEIS in VBA - aber nicht alleine
24.10.2017 16:28:00
Luschi
Hallo Timo,
da mußt Du schon ein bischen mehr zeigen in Form eine kleinen Mustermappe;
sowas baut Dir sicher niemand nach, um dann zu testen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: SVERWEIS in VBA - aber nicht alleine
25.10.2017 00:40:48
Werner
Hallo Wokesay,
und warum schreibst du nicht einfach deine SVERWEIS-Formel per VBA in deinen Zellbereich und ersetzt dann das Formelergebnis durch die Werte.
Den Blattnamen musst du an deine Gegebenheiten anpassen.
Den Bereich in den die Formel eingetragen wird habe ich mal von B2 bis B letzte belegte Zelle in Spalte A gewählt, da ich davon ausgegangen bin, dass in Zeile 1 Überschriften vorhanden sind.
Public Sub test()
Dim loLetzte As Long, raBereich As Range
With Worksheets("Tabelle1") 'Blattname anpassen
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
Set raBereich = .Range(.Cells(2, 2), .Cells(loLetzte, 2))
raBereich.FormulaLocal = "=WENNFEHLER(WENN(SVERWEIS(A2;'KBK-Zuständigkeit'!$A$2:$B$99999;2; _
FALSCH);" _
& "SVERWEIS(A2;'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH);"""");"""")"
raBereich.Value = raBereich.Value
End With
set raBereich = Nothing
End Sub
Gruß Werner
Anzeige
AW: SVERWEIS in VBA - aber nicht alleine
25.10.2017 00:49:14
Werner
Hallo Wokesay,
nimm lieber den Code hier. Beim anderen habe ich beim Einfügen nicht aufgepasst und die Forensoftware hat eine Zeilenumbruch rein gehauen.
Public Sub test()
Dim loLetzte As Long, raBereich As Range
With Worksheets("Tabelle1") 'Blattname anpassen
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
Set raBereich = .Range(.Cells(2, 2), .Cells(loLetzte, 2))
raBereich.FormulaLocal = _
"=WENNFEHLER(WENN(SVERWEIS(A2;'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH)" _
& ";SVERWEIS(A2;'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH);"""");"""")"
raBereich.Value = raBereich.Value
End With
End Sub
Gruß Werner
Anzeige
AW: SVERWEIS in VBA - aber nicht alleine
25.10.2017 10:29:41
Wokesay
Hallo Werner,
ich habs gerade ausprobiert und es läuft!
Vielen Dank. Die finale Variante sieht jetzt so aus...
Dim raBereich As Variant
Set raBereich = Worksheets("Quelle").Cells(lastrow + 1, 8)
raBereich.FormulaLocal = "=WENNFEHLER(WENN(SVERWEIS(Datentransfer!L30;"_
& "'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH);SVERWEIS(Datentransfer!L30;"_
& "'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH);"""");"""")"
raBereich.Value = raBereich.Value
Set raBereich = Nothing
War dann am Ende ja doch recht einfach, aber drauf gekommen wäre ich sicher nie!
1000 Dank und schönen Tag
Anzeige
AW: SVERWEIS in VBA - aber nicht alleine
25.10.2017 12:59:31
Werner
Hallo Wokesay,
-warum raBereich as Variant?
-wenn du die Formel nur in einer Zelle brauchst dann so
Public Sub test()
Dim lastrow As Long
With Worksheets("Quelle").Cells(lastrow + 1, 8)
.FormulaLocal = "=WENNFEHLER(WENN(SVERWEIS(Datentransfer!L30;'KBK-Zuständigkeit'!" _
& "$A$2:$B$99999;2;FALSCH);SVERWEIS(Datentransfer!L30;" _
& "'KBK-Zuständigkeit'!$A$2:$B$99999;2;FALSCH);"""");"""")"
.Value = .Value
End With
End Sub
Gruß Werner

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige