Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA SVERWEIS andere Arbeitsmappe

VBA SVERWEIS andere Arbeitsmappe
21.11.2017 18:44:34
FAUBEA
Hallo liebes Community,
folgende Anforderung:
ab Feld C8 stehen meine Bezugsdaten, die länge der Tabelle ist frei.
In D8 und E8 möchte ich Informationen aus einer anderen Excel Arbeitsmappe nun einfügen, die auf meine Bezugsdaten in C8 basieren.
Die andere Excel Arbeitsmappe liegt immer am selben Speicherort und sollte nicht manuell geöffnet und geschlossen werden müssen, sondern alles per Makro.
Ihr Experten habt hierfür bestimmt eine ganz simple Lösung. :)
Vielen lieben Dank im Voraus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 18:53:33
Daniel
Hi
ja, ganz einfach:
Per Marko die SVerweis-Formel mit externen Zellbezug in die Zelle schreiben und bei Bedarf hinterher die Formeln durch ihren Wert ersetzen.
Gruß Daniel
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:24:01
FAUBEA
Danke für deine Antwort.
Und wie könnte so etwas aussehen? :)
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:41:44
Daniel
HI
naja, das eingeben einer Formel kannst du doch mit dem Recorder aufzeichnen!
um in einer Zelle eine Formel durch ihren Wert zu ersetzen schreibt man dann einfach (Zelladresse bitte anpassen):
Range("A1").Formula = Range("A1").Value

das funktioniert auch mit größeren Zellbereichen, dh wenn man mehrere Formeln hat, kann man es für alle Formeln in einem Schritt machen, sofoern die Formeln einen lückenlosen Zellblock bilden:
Range("A1:B2").Formula = Range("A1:B2").Value
oder du machst es mit KOPIEREN - INHALTE EINFÜGEN WERTE, das kannst du wieder mit dem Recorder aufzeichnen.
Gruß Daniel
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:49:20
FAUBEA
Ja aber wie öffne ich die zweite Arbeitsmappe mit den Daten und wie verweise ich auf eine andere Arbeitsmappe, das klappt leider nicht über den Recorder
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 19:55:11
Daniel
HI
du musst die Datei nicht öffnen.
du trägst einfach die Formel mit dem Externen Zellbezug in die Zelle ein und zeichnest das mit dem Recoder auf.
in Zelle muss im Prinzip diese Formel (Zellbezüge und Dateipfad und -name anpassen):
=SVerweis(C8;'C:\Ordner1\...\OrdnerX[Dateiname.xlsx]TabelleX'!A:B;2;falsch)
beachte die Hochkommas, das erste am Anfang und das zweite nach dem Tabellenblattnamen vor dem Ausrufezeichen.
der Dateiname muss in eckige Klammern gesetzt werden.
Gruß Daniel
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 20:24:14
FAUBEA
Super, das wusste ich nicht, dass das so geht.
Bin gerade am rumprobieren. Sieht so aus:
Sub SVERWEIS()
' SVERWEIS Makro
Range("D8").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'C:\xx\xx\xx\[Infodaten.xlsx]Tabelle1'!C[-3]:C[-1],2,FALSE)"
Range("F8").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'C:\xx\xx\xx\[Infodaten.xlsx]Tabelle1'!C[-5]:C[-3],3,FALSE)"
End Sub
So jetzt kommt es aber vor, dass mal ein Feld leer ist, z.B. C9, dann steht #NV drin, das könnte ich zwar über suchen und ersetzen auch ersetzen, aber gibt es dafür auch eine Lösung?
Und wie lass ich das bis zum letzter Zeile durchrattern, wenn z.B. in C100 noch etwas drin steht?
Und wie füge ich keine Formel, sondern nur den Inhalt ein?
Vielen Dank für deine Geduld :)
Anzeige
AW: VBA SVERWEIS andere Arbeitsmappe
21.11.2017 20:33:28
Daniel
Hi
wenn man das #NV nicht haben will, löst man das direkt in der Formel:
=WennFehler(SVerweis(...);"")
oder auch, um es nur bei leerem C9 zu vermeiden:
=Wenn(C9="";"";SVerweis(C9;...))
Die Formel kann man auch in mehrere Zellen gleichzeitig schreiben:
Range("D8:D100").FormulaR1C1 = "=VLookUp(RC[-1];....)" 
wenn die letzte befüllte Zeile variabel sein kann und erst noch ermittelt werden muss:

Range("D8:D" & Cells(Rows.Count, 3).End(xlup).Row).FormulaR1C1 = "=VLookUP(...)

wie du hinterher die Formel durch die Werte ersetzt, habe ich dir schon erklärt.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA SVERWEIS in eine andere Arbeitsmappe nutzen


Schritt-für-Schritt-Anleitung

  1. Makro erstellen:

    • Öffne die Excel-Datei, in der du das Makro erstellen möchtest.
    • Gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.
    • Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  2. Formel in VBA einfügen:

    • Füge den folgenden Code in das Modul ein, um den SVERWEIS aus einer anderen Datei zu verwenden:
      Sub SVERWEIS()
      ' SVERWEIS Makro
      Range("D8").FormulaR1C1 = "=VLOOKUP(RC[-1],'C:\Ordner1\...\OrdnerX[Dateiname.xlsx]TabelleX'!C[-3]:C[-1],2,FALSE)"
      Range("F8").FormulaR1C1 = "=VLOOKUP(RC[-1],'C:\Ordner1\...\OrdnerX[Dateiname.xlsx]TabelleX'!C[-5]:C[-3],3,FALSE)"
      End Sub
    • Achte darauf, den Dateipfad und die Blattnamen anzupassen.
  3. Formel für mehrere Zeilen anwenden:

    • Um die Formel bis zur letzten Zeile anzuwenden, verwende:
      Range("D8:D" & Cells(Rows.Count, 3).End(xlUp).Row).FormulaR1C1 = "=VLOOKUP(RC[-1],'C:\Ordner1\...\OrdnerX[Dateiname.xlsx]TabelleX'!C[-3]:C[-1],2,FALSE)"
  4. Fehlerbehandlung:

    • Um Fehler wie #NV zu vermeiden, kannst du die Formel anpassen:
      Range("D8").FormulaR1C1 = "=IFERROR(VLOOKUP(...), "")"

Häufige Fehler und Lösungen

  • #NV Fehler: Dieser Fehler tritt auf, wenn der SVERWEIS keinen Wert findet. Verwende die Formel =IFERROR(SVERWEIS(...), ""), um diesen Fehler zu vermeiden.

  • Formel wird nicht übernommen: Stelle sicher, dass der Pfad zur anderen Datei korrekt ist und die Datei nicht manuell geöffnet werden muss.

  • Makro läuft nicht: Überprüfe, ob Makros in den Excel-Einstellungen aktiviert sind.


Alternative Methoden

  • Direkte Eingabe der Formel: Du kannst die SVERWEIS-Formel direkt in die Zelle eingeben und dann per Makro aufzeichnen.

  • Kopieren und Einfügen: Wenn du die Formel nicht als Formel, sondern als Wert einfügen möchtest, kannst du die Option Inhalte einfügen > Werte verwenden.


Praktische Beispiele

Hier sind einige Anwendungsbeispiele für den SVERWEIS in Excel:

  1. SVERWEIS über zwei Arbeitsmappen:

    Sub BeispielSVERWEIS()
       Range("D8").Formula = "=VLOOKUP(C8,'C:\Ordner1\[Daten.xlsx]Tabelle1'!A:B,2,FALSE)"
    End Sub
  2. SVERWEIS mit dynamischem Bereich:

    Sub DynamischerSVERWEIS()
       Dim letzteZeile As Long
       letzteZeile = Cells(Rows.Count, 3).End(xlUp).Row
       Range("D8:D" & letzteZeile).FormulaR1C1 = "=VLOOKUP(RC[-1],'C:\Ordner1\[Daten.xlsx]Tabelle1'!C[-3]:C[-1],2,FALSE)"
    End Sub

Tipps für Profis

  • Verwende Named Ranges: Statt feste Zellreferenzen zu verwenden, kannst du benannte Bereiche in deiner anderen Excel-Datei definieren. Das macht dein Makro flexibler.

  • Fehlerprotokollierung: Implementiere eine Fehlerbehandlung im Makro, um Probleme schneller zu identifizieren.

  • Regelmäßige Backups: Bei der Arbeit mit wichtigen Daten ist es ratsam, regelmäßige Backups deiner Dateien zu erstellen, insbesondere wenn du Makros verwendest, die Daten verändern.


FAQ: Häufige Fragen

1. Kann ich SVERWEIS auf eine andere Datei verwenden, die nicht geöffnet ist?
Ja, du kannst SVERWEIS auf eine andere Datei anwenden, ohne sie manuell zu öffnen, indem du den korrekten externen Zellbezug verwendest.

2. Wie kann ich die Formel in einen Wert umwandeln?
Du kannst die Formel in einen Wert umwandeln, indem du den Befehl Range("A1").Formula = Range("A1").Value verwendest oder die Inhalte einfügst als Werte.

3. Was mache ich, wenn die Daten in der anderen Datei geändert wurden?
Stelle sicher, dass du die Referenzen in deinem Makro oder deiner Formel anpasst, um auf die aktualisierten Daten zuzugreifen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige