Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sverweis mit variablem Dateiname

Sverweis mit variablem Dateiname
09.05.2018 13:46:08
Ben
Hallo zusammen,
ich hoffe ihr könnt mir hier etwas helfen.
Per Inputbox wird vom User ein Dateiname eingegeben (wahrscheinlich nur Zahlen z.B. ein Datum 20180509). Das krig ich hin.
In der Zelle AE2 befindet sich ein SVERWEIS inkl. Pfad zu einem anderen Excel.
Nun will ich, dass per Makro die Eingabe der Inputbox im Sverweis landet, damit dieser weiss auf welche Datei er in diesem Ordner zugreifen soll.
=WENNFEHLER(SVERWEIS(B2; 'G:\u\v\w\x\y\z\[hier sollte der Dateiname eingefügt werden.xlsm]Tabelle1'!$A:$AI;35;0);"") 
Krig ich irgendwie nicht hin. Habt ihr eine Lösung?
Danke euch!
Gruss Ben
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sverweis mit variablem Dateiname
09.05.2018 14:22:36
Daniel
Hi
prinzipell erzeugt man Variable Zellbezüge mit INDIREKT in der Funktion selbst.
(Indirekt macht aus einem "berechnenbaren" Text einen Zellbezug).
Allerdings funktioniert Indirekt nur mit Bezügen auf geöffnete Dateien.
dh. für dein Vorhaben musst du die Formel per Makro vollständig erstellen und in die Zelle schreiben.
Da du für die Inputbox sowieso schon ein Makro hast, ist das kein Problem:
dim Datei as string
dim Pfad as string
dim FO as string
Pfad = "G:\u\v\w\x\y\z\"
Datei = Inputbox("Dateiname")
if dir(Pfad & Datei & ".xlsm") = "" then
Msgbox "falscher Dateiname"
else
FO = "=IfError(VLookUp(B2,'xxx[yyy.xlsm]!Tabelle1!$A$:$AI,35,0),"""")"
FO = Replace(FO, "xxx", Pfad)
FO = Replace(FO, "yyy", Datei)
Range("AE2").Formula = FO
end if
ich habe hier die Generierung der Formel etwas aufwendiger dargestellt, aber diese Vorgehensweise ist beim erstellen von längeren Formeln deutlich übersichtlicher, vorallem wenn der selbe Variablenwert mehrfach in der Formel benötigt wird.
Achte darauf, dass du Dummy-Texte verwendest, die ansonsten im Code nicht vorkommen.
Gruß Daniel
Anzeige
AW: Sverweis mit variablem Dateiname
09.05.2018 16:25:30
Ben
Hallo Daniel,
danke schonmal,...habe leider eine Fehlermeldung bei...
Range("AE2").Formula = FO
Welche Möglichen Ursachen gibt es?
Danke dir!
Gruss Ben
AW: Sverweis mit variablem Dateiname
09.05.2018 16:34:31
Daniel
HI
die Variable FO muss eine korrekte Formel in der A1-Schreibweise haben, dh
- englische Funktionsnamen
- Zellbezüge mit A1-Addressierungsart
- Komma als Parametertrennzeichn.
wenn das makro stoppt wird dir der Inhalt der Variable in der Bubblehelp angezeigt, wenn du mit der Maus drüberfährst.
oder du lässt dir den Text im Direktfenster mit ?Fo anzeigen
bitte schau dir den String genau an, ob er einer regulären Formel entspricht.
Gruß Daniel
kleiner Tipp: ich hab im Code ein Hochkomma vergessen, das müsstest du im FO = "=IFError(...)" an passender Stelle ergänzen (bei Excel gut solltest du die Stelle eigentlich finden.
Anzeige
AW: Sverweis mit variablem Dateinamen
09.05.2018 14:26:18
Rudi
Hallo,
Sub aaa()
Dim DateiName
DateiName = InputBox("Dateiname?")
Range("AE2").FormulaLocal = "=WENNFEHLER(SVERWEIS(B2; 'G:\u\v\w\x\y\z\[" & DateiName & "] _
Tabelle1'!$A:$AI;35;0);"""")"
End Sub
Gruß
Rudi
Funktioniert! Danke euch beiden. owT
14.05.2018 17:11:11
Ben
Funktioniert! Danke euch beiden.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Sverweis mit variablem Dateiname in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“, wähle „Einfügen“ und dann „Modul“.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub SverweisMitVariablemDateiname()
       Dim Datei As String
       Dim Pfad As String
       Dim FO As String
    
       Pfad = "G:\u\v\w\x\y\z\"
       Datei = InputBox("Gib den Dateinamen ein (z.B. 20180509):")
    
       If Dir(Pfad & Datei & ".xlsm") = "" Then
           MsgBox "Falscher Dateiname"
       Else
           FO = "=IFERROR(VLOOKUP(B2, '" & Pfad & "[" & Datei & ".xlsm]Tabelle1'!$A:$AI, 35, 0), """")"
           Range("AE2").Formula = FO
       End If
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Drücke ALT + F8, wähle „SverweisMitVariablemDateiname“ aus und klicke auf „Ausführen“.


Häufige Fehler und Lösungen

  • Fehlermeldung bei Range("AE2").Formula = FO:

    • Stelle sicher, dass die Variable FO eine korrekte Formel in der A1-Schreibweise hat. Überprüfe, ob die Funktionsnamen in Englisch sind und die Zellbezüge korrekt sind.
  • Falscher Dateiname:

    • Achte darauf, dass der eingegebene Dateiname genau dem Namen der Excel-Datei entspricht, ohne die Dateiendung.
  • INDIREKT-Funktion:

    • Beachte, dass die INDIREKT-Funktion nur mit geöffneten Dateien funktioniert. In diesem Fall ist die Verwendung eines Makros die bessere Lösung.

Alternative Methoden

Eine alternative Methode ist die Verwendung von Formeln direkt in Excel, wenn Du den Dateinamen manuell eingeben möchtest. Du kannst die INDIREKT-Funktion verwenden, um auf die Zelle in einer geöffneten Datei zuzugreifen:

=INDIREKT("'G:\u\v\w\x\y\z\[" & A1 & ".xlsm]Tabelle1'!A1")

Hierbei steht A1 für die Zelle, in der der Dateiname gespeichert ist.


Praktische Beispiele

Angenommen, Du hast eine Datei namens „20180509.xlsm“ im angegebenen Pfad. Du kannst den SVERWEIS in der Zelle AE2 wie folgt nutzen:

Range("AE2").Formula = "=IFERROR(VLOOKUP(B2, 'G:\u\v\w\x\y\z\[20180509.xlsm]Tabelle1'!$A:$AI, 35, 0), """")"

Diese Formel sucht in der Datei „20180509.xlsm“ nach dem Wert in B2 und gibt das Ergebnis zurück, wenn es gefunden wird.


Tipps für Profis

  • Debugging: Wenn der Code nicht funktioniert, setze Haltepunkte im VBA-Editor und nutze die Funktion „Schritt für Schritt ausführen“, um den Fehler zu finden.
  • Dummy-Daten: Verwende Dummy-Daten für Tests, um sicherzustellen, dass Deine Formeln korrekt sind, bevor Du sie in die Produktionsdatei einfügst.
  • Formel-Optimierung: Wenn Du mit langen und komplexen Formeln arbeitest, ist es oft hilfreich, die Formel in mehrere Teile zu zerlegen und diese in separaten Variablen zu speichern.

FAQ: Häufige Fragen

1. Frage Kann ich den Dateinamen auch ohne Makro ändern?

Antwort: Ja, Du kannst den Dateinamen manuell in die Formel eingeben, aber das ist nicht so flexibel wie die Verwendung eines Makros.

2. Frage Warum funktioniert die INDIREKT-Funktion nicht mit geschlossenen Dateien?

Antwort: Die INDIREKT-Funktion benötigt eine offene Datei, um den Bezug korrekt herzustellen. Für geschlossene Dateien ist die Verwendung eines Makros erforderlich.

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