2.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich lese mir Dateien aus einem Windows-Ordner aus - habe dadurch in Excel eine Liste von Dateinamen inkl. Pfad. Diese Namen möchte ich jetzt in Formeln verwenden, um jeweils eine bestimmte Zelle aus diesen Dateien auszulesen.
Bsp.:
eine der Dateien heiß "C:\Daten\temp\Test.xls"
Die Formel in meiner Ziel-Datei müsste jetzt so ähnlich aussehen wie ='C:\Daten\temp\[Test.xls]Tabelle1'!$A$1

Wie muss ich die Formel schreiben, damit ich tatsächlich die Verknüpfung in diese einzelnen Dateien erreiche?

Viele Dank für eure Hilfe
Gruß, Jojo

10 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Jojo,

wie ließt Du denn die Dateinamen aus dem Pfad aus? Per VBA-Makro? Wenn nicht, wie dann?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Jojo,

da hast Du mit Formeln schlechte Karten.

Du könntest zwar die Funktion INDIREKT() verwenden, aber dann
müssten alle Mappen, die Du in der Liste anführst, geöffnet sein und
das wirst Du ja kaum wollen.

Da wirst Du nicht an VBA vorbei kommen, was allerdings nicht meine
Strecke ist.

Gruß
Rainer
0 Punkte
Beantwortet von
Hallo,

ich lese die Dateien mit dir *.xls /w > ... aus. Aber das ist nicht das Thema. Ich hätte mit meiner Schilderung auch erst bei der Liste der Dateinamen beginnen können ...

Die Funktion INDIREKT() ist leider auch nicht die Lösung.

Trotzdem danke euch beiden. Vielleicht hat ja doch noch jemand einen Tipp.

Einen schönen Tag noch
Jojo
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Jojo,

das ist mir schon klar, dass das Auslesen der Dateinamen nicht das Thema ist. Mir ging es darum, ob Du das per VBA realisierst. Dann hätte man den VBA-Code dahingehend erweitern können, dass der Pfad und die Dateinamen gleich im richtigen Format für die Formeln übergeben werden könnten.

Aber eine VBA-Lösung kommt ja wie ich annehme, weil Du auf Rainers Vorschlag bezüglich VBA nicht reagiert hast, für Dich nicht in Betracht?

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,

doch - auch eine VBA-Lösung käme für mich in Frage (wenn ich dann noch wüsste, wie das funktioniert???). Aber damit könntest du mir wohl weiterhelfen, oder?

Das wäre sehr nett.

Falls es von Relevanz ist: Die gesuchten und zu verknüpfenden Dateien liegen auf einem Netz-Laufwerk.

Danke, Gruß
Jojo
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Jojo,

nachfolgendes Makro führt Dir in Spalte A den Pfad und den Dateinamen usw. gleich so, dass Du das in Deiner Formel benutzen können solltest.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Const strPath = "C:\Eigene Dateien\"

Sub Pfade_ermitteln()
Dim Datei$
Dim lngrow As Long
Datei = Dir(strPath & "\*.xls")
Do While Datei <> ""
If Right(Datei, 4) = ".xls" Then
lngrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(lngrow, 1) = strPath & "[" & Datei & "]Tabelle1'!$A$1"
End If
Datei = Dir()
Loop
End Sub
Du musst in dem Makro in der Zeile

Const strPath = "C:\Eigene Dateien\"den Pfad anpassen.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,

vielen Dank - das ist klasse (und vor allem viel schneller als mein Weg über ein batch-file).

ABER: Das Resultat ist das gleiche ...

Ich habe einen Pfad mit einem Dateinamen und einer Zellangabe. Ich muss aber diese in eine Formel packen, um den Wert dieser Zelle auszulesen. Das ist das Hauptproblem.

Gibt es dafür noch eine VBA-Ergänzung bzw. Änderung im Code? Oder wie muss die Formel aussehen, die dein VBA-Ergebnis verwendet?

Danke, Gruß
Jojo
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Jojo,

das Makro mit einer kleiner Änderung fügt Dir gleich die gesamte Formel in Splate A ein. Eventuell ist es ja dass, was Du suchtest.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Const strPath = "C:\Eigene Dateien\"

Sub Pfade_ermitteln()
Dim Datei$
Dim lngrow As Long
Datei = Dir(strPath & "\*.xls")
Do While Datei <> ""
If Right(Datei, 4) = ".xls" Then
lngrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Cells(lngrow, 1).FormulaLocal = "='" & strPath & "[" & Datei & "]Tabelle1'!$A$1"
End If
Datei = Dir()
Loop
End Sub


MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,

PERFEKT!!!

Vielen Dank und noch einen schönen Tag
Jojo
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Jojo,

gerne geschehen. Danke auch für die Rückmeldung.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...