Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
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 durch VBA ersetzen

SVERWEIS durch VBA ersetzen
22.02.2022 16:32:11
Juli
Hallo!
Ich würde gerne einen SVERWEIS in einer relativ langen Tabelle (+500 Zeilen) durch eine VBA Lösung ersetzen, da das ganze extreeeem langsam und groß wird
Vorgegeben (hab ich nicht geschrieben) in der Tabelle war bisher:

=WENNFEHLER(SVERWEIS(J3;'https://iweof...K/[Availability Check.xlsx]CDC'!$F:$K;6;FALSCH);"0")  Link hab ich mal gekürzt
Ich habe also in meiner Spalte J Zeilen mit Artikelnummern, die in der Availability Check.xlsx in Spalte F stehen.
Zugehörigig zu den Nummern in Spalte F steht in Spalte K die Verfügbare Menge der Artikel.
Diese Menge soll in meiner Datei in der jeweiligen Zeile in Spalte N ausgegeben werden, wennn nichts gefunden wird sollte eine 0 eingettragen werden.
Ich habe mir schon einige Beispiele zu vlookup angesehen, komm aber nicht richtig klar
Danke für eure Vorschläge!

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

Betreff
Datum
Anwender
Anzeige
AW: Wie klappts?
24.02.2022 15:10:47
Juli
? Der Link geht nicht, worauf möchtest du hinweisen?
AW: Wie klappts?
24.02.2022 15:39:55
GerdL
Du hast dort keine Rückmeldung, ob es funktioniert, gegeben. Für Antworter ist schon interessant, ob u. welcher Vorschlag erfolgreich umgesetzt worden ist.
Stand heute ist dieser Forumsbeitrag jetzt schon archiviert. Lassen wir ihn jetzt dort.
AW: SVERWEIS durch VBA ersetzen
23.02.2022 09:23:28
Pierre
Hallo Juli,
nun, du könntest deine Formel mit dem Makrorecorder aufzeichnen:
Beide Mappen öffnen, dann Makrorecorder starten, über "Formeln" - "Funktion einfügen" - "Sverweis", dort die ganzen Sachen eintragen, die notwendig sind, Aufzeichnung stoppen, Code ansehen.
Dadurch erhälst du die folgende Formel (ich habe jetzt mal nur 8 Zeilen befüllt):

ActiveCell.FormulaR1C1 = Range("N1:N" & i).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],[Mappe1.xlsx]Tabelle1!R1C6:R8C11, 6, 0),0)"
Dürfte bei dir nicht viel anders aussehen.
Um das variabel zu gestalten, bastelst du noch eine "For-Next"-Schleife drum und baust deine Zeilenvariable in die Formel mit ein und fertig. (Okay, dafür hättest du wahrscheinlich wirklich Hilfe gebraucht, findet man aber auch im Netz)
Sieht bei mir am Ende so aus:

Sub SVerweis()
Dim i As Long
For i = 2 To ActiveSheet.Cells(Rows.Count, 10).End(xlUp).Row
Range("N1:N" & i).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],[Mappe1.xlsx]Tabelle1!R1C6:R" & i & "C11, 6, 0),0)"        'Variabel nach unten bis zur letzten gefüllten Zeile
'Range("N1:N" & i).FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],[Mappe1.xlsx]Tabelle1!R1C6:R8C11, 6, 0),0)"               'fester Bereich, hier bis K8
Next i
End Sub
R1C6:R1C11 bedeutet, dass in deiner Quellmappe im Bereich F1 bis K8 gesucht wird.
Wie gesagt, um den Suchbereich nach unten hin variabel zu halten, muss man die Formel ein bisschen umbauen.
Das o. g. Makro musst du in deiner Zielmappe abspeichern. Ich habe es als eigenes Modul hinzugefügt.
"Mappe1" musst du durch den richtigen Namen der Quelldatei ersetzen.
Gruß Pierre
Anzeige
AW: SVERWEIS durch VBA ersetzen
24.02.2022 13:22:59
Juli
Hallo!
Danke für den Vorschlag, ich denke ich hab einigermaßen verstanden, wie es gemeint ist.
Ich würde auf jeden Fall die flexible Version benutzen wollen, da auch dei Quelldatei für meine Bestände ständig in der Länge wechselt, je nach dem ob sich das Sortiment ändert.
Direkt übetragen lässt sich der Code leider nicht, bekomme

Laufzeitfehler '1004'
Anwendungs- oder Objektdefinierter Fehler.

AW: SVERWEIS durch VBA ersetzen
24.02.2022 15:49:33
Pierre
Hast du auch den richtigen Namen eingesetzt und nicht nur "direkt übertragen", was für mich danach klingt, als hätte deine Quelldatei einen anderen Namen als "Mappe1"
Anzeige
AW: SVERWEIS durch VBA ersetzen
25.02.2022 17:58:53
Juli
ich habe die ganze [Mappe1] durch meinen Link zu der Quelldatei ersetzt
also https://iweof...K/[Availability Check.xlsx]CDC ... das ist eine Datei, die auf einem Sharepoint liegt ... vielleicht kommt er damit nicht klar

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige