Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: SVERWEIS in VBA umsetzen

SVERWEIS in VBA umsetzen
Ronald
Ich habe eine Datei, in der gibt es 2 Tabellenblätter.
1. Bewegungen
2. Stamm
In Bewegungen habe ich sehr viele Datensätze. Mittels SVERWEIS habe ich jetzt jedem Datensatz den entsprechenden Einrichtungsnamen zugeordnet. Das geht wie folgt.
Jeder Datensatz hat eine Kostenstelle z.B.
70693 - (die Stellen 2 und 3 beinhalten die Einrichtungsnummer, hier 69)
70570 - (hier 57)
In der Tabelle Stamm steht nun hinter der 69 der Einrichtungsname oder eben hinter 57 usw.
Ich habe nun bemerkt das SVERWEIS ziemlich viel Resourcen benötigt und frage mich ob man dieses Problem mittels VBA beheben kann?
Kann mir da jemand helfen, VBA kann ich leider nicht.
Gruß
Ronald
Einen Auszug der Exceldatei füge ich mal an.
https://www.herber.de/bbs/user/75667.xlsx
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: SVERWEIS in VBA umsetzen
12.07.2011 23:58:54
fcs
Hallo Ronald,
in den meisten Fällen bremst der Einsatz von VBA-Funktionen die Verarbeitung von Daten in Excel, die integrierten Excel-Funktionen sind immer schneller.
Was du per VBA machen kannst: Die Formeln werden in die Tabelle eingefügt und nach Neuberechnung durch ihre Werte ersetzt. So reduziert sich die Anzahl der Berechnungen im Blatt.
Nachfolgend ein entsprechendes Makro.
Gruß
Franz
Sub FormelEinfuegen_in_Werte()
Dim wks As Worksheet
Set wks = ActiveWorkbook.Worksheets("Bewegungen")
With wks
'Formeln in Spalte J einfügen und durch Werte ersetzen
With .Range(.Cells(2, 10), .Cells(.Cells(.Rows.Count, 5).End(xlUp).Row, 10))
.FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-2],Stamm!R1C1:R13C2,2)),"""",VLOOKUP(RC[-2],Stamm!R1C1:R13C2,2))"
.Calculate
.Value = .Value
End With
End With
End Sub

Anzeige
AW: SVERWEIS in VBA umsetzen
13.07.2011 08:38:44
Ronald
Vielen Dank Franz für Deine Hilfe und sehr gute Erläuterung.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

SVERWEIS in VBA umsetzen


Schritt-für-Schritt-Anleitung

Um den SVERWEIS in VBA umsetzen zu können, gehst Du wie folgt vor:

  1. Öffne die Excel-Datei mit den Tabellenblättern „Bewegungen“ und „Stamm“.

  2. Öffne den VBA-Editor mit der Tastenkombination ALT + F11.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf „VBAProject (DeinWorkbookName)“ > Einfügen > Modul.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub FormelEinfuegen_in_Werte()
       Dim wks As Worksheet
       Set wks = ActiveWorkbook.Worksheets("Bewegungen")
       With wks
           'Formeln in Spalte J einfügen und durch Werte ersetzen
           With .Range(.Cells(2, 10), .Cells(.Cells(.Rows.Count, 5).End(xlUp).Row, 10))
               .FormulaR1C1 = _
               "=IF(ISNA(VLOOKUP(RC[-2],Stamm!R1C1:R13C2,2)),"""",VLOOKUP(RC[-2],Stamm!R1C1:R13C2,2))"
               .Calculate
               .Value = .Value
           End With
       End With
    End Sub
  5. Starte das Makro:

    • Schließe den VBA-Editor und kehre zu Excel zurück.
    • Drücke ALT + F8, wähle „FormelEinfuegen_in_Werte“ und klicke auf „Ausführen“.

Jetzt werden die SVERWEIS-Formeln in Deinen Datensätzen durch die dazugehörigen Werte ersetzt, was die Berechnungsgeschwindigkeit verbessert.


Häufige Fehler und Lösungen

  • Fehler: „Name der Arbeitsblätter ist falsch.“

    • Lösung: Stelle sicher, dass die Namen der Tabellenblätter exakt stimmen. Groß- und Kleinschreibung sind wichtig.
  • Fehler: „Laufzeitfehler 1004: Anwendung oder Objekt definieren.“

    • Lösung: Überprüfe, ob die Zellen und Bereiche im Code korrekt angegeben sind.
  • Fehler: „Das Makro funktioniert nicht.“

    • Lösung: Kontrolliere, ob Du die richtigen Berechtigungen in Excel hast (z.B. Makros aktivieren).

Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, gibt es auch alternative Methoden, um den SVERWEIS in Excel zu nutzen:

  • Pivot-Tabellen: Diese sind schneller bei großen Datenmengen und benötigen keine komplexen Formeln.
  • INDEX und VERGLEICH: Eine Kombination dieser Funktionen kann oft flexiblere Lösungen bieten als SVERWEIS.

Praktische Beispiele

Hier ist ein Beispiel, wie Du den SVERWEIS in VBA für eine Liste von Kostenstellen umsetzen kannst:

Angenommen, Du hast folgende Daten in der Tabelle „Bewegungen“:

Kostenstelle Einrichtungsname
70693 Einrichtungsname A
70570 Einrichtungsname B

Mit dem Makro, das wir zuvor erstellt haben, kannst Du für jede Kostenstelle den entsprechenden Einrichtungsnamen aus der Tabelle „Stamm“ zuordnen.


Tipps für Profis

  • Optimierung: Wenn Du häufig mit großen Datenmengen arbeitest, könnte es hilfreich sein, Deine VBA-Makros so zu optimieren, dass sie nur bei Bedarf ausgeführt werden.
  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um Fehler schnell zu identifizieren und zu beheben.
  • Dokumentation: Halte Deine Makros gut dokumentiert, damit Du sie später leichter anpassen oder teilen kannst.

FAQ: Häufige Fragen

1. Kann ich den SVERWEIS in VBA für mehrere Tabellenblätter verwenden?
Ja, Du kannst den VBA-Code anpassen, um Daten von mehreren Tabellenblättern zu verarbeiten.

2. Ist es besser, SVERWEIS in VBA oder als Formel zu verwenden?
Das hängt von der Datenmenge ab. VBA kann bei sehr großen Datenmengen effizienter sein, während einfache Aufgaben schneller mit Formeln erledigt werden können.

3. Welche Excel-Version benötige ich für VBA?
VBA ist in Excel 2007 und neueren Versionen verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige