Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
584to588
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
584to588
584to588
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten aller Dateien eines Dateiordners einlesen

Daten aller Dateien eines Dateiordners einlesen
14.03.2005 09:40:18
Ruth
Hallo zusammen,
ich habe ein Makro aus dem Netz so angepasst, dass definierte Zellinhalte aller (identisch aufgebauten) geschlossenen Excel-Dateien aus einem Dateiordner eingelesen werden. Dazu habe ich in den Zeilen der Spalte E der Zieldatei den Tabellennamen und in den Zeilen der Spalte F die jeweils anzusteuernde Zelle hinterlegt. Ab Spalte G werden die Ergbnisse aus den jeweiligen Dateien Spaltenweise aufgeführt.
In dem Makro -hier nur der m.E. betreffende Teil- muss ich derzeit nun jede in den Quelldateien abzugreifende Kriterium einzeln abgreifen (hier die in Zeile 24 und 25 definierten Zellen):

Sub Dateisuche(Laufwerk, Dateien)
Dim tmp, Wdhlg
On Error Resume Next
If Right(Laufwerk, 1) <> "\" Then Laufwerk = Laufwerk + "\"
tmp = Dir(Laufwerk & Dateien)
Do While Len(tmp)
Cells(2, s) = Datei(Laufwerk & tmp)
Cells(24, s).Formula = "='" & Pfad(Laufwerk & tmp) & "[" & Datei(Laufwerk & tmp) & "]" & [e24] & "'!" & [f24]
If Cells(24, s) <> 1E+15 Then Cells(24, s) = Cells(24, s) Else Cells(24, s) = ""
Cells(25, s).Formula = "='" & Pfad(Laufwerk & tmp) & "[" & Datei(Laufwerk & tmp) & "]" & [e25] & "'!" & [f25]
If Cells(25, s) <> 1E+15 Then Cells(25, s) = Cells(25, s) Else Cells(25, s) = ""
s = s + 1
tmp = Dir()
Loop
tmp = Dir(Laufwerk, vbDirectory)
Do While Len(tmp)
Application.StatusBar = Laufwerk & tmp
If (tmp <> ".") And (tmp <> "..") Then
If (GetAttr(Laufwerk & tmp) And vbDirectory) = vbDirectory Then
Dateisuche Laufwerk & tmp, Dateien
s = s - 1
Wdhlg = Dir(Laufwerk, vbDirectory)
s = s + 1
Do While Wdhlg <> tmp
Wdhlg = Dir()
Loop
End If
End If
tmp = Dir()
Loop
On Error GoTo 0
Application.StatusBar = False
End Sub
Dadurch bin ich in der Anzahl der abzugreifenden Zellen eingeschränkt.
Wie kann ich dieses Makro so variabel gestalten, dass die in Spalte E und F definierten Zellen für jede Datei so lange ausgelesen werden, bis dort keine Zelle mehr definiert ist?
Ich hoffe, ich habe das Problem verständlich beschreiben können!
Vielleicht kann mir ja jemand helfen!
Vielen Dank!
Ruth

		

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aller Dateien eines Dateiordners einlesen
14.03.2005 13:30:55
Volker
Hallo Ruth,
statt .... & [e24] & "'!" & [f24] kannst Du natürlich auch
......& cells(24,5) & "'!" & [24,6] schreiben
Oder mit variablem Zeilenindex mal eine kleine Schleife, die in Zeile 24 startet und abbricht, wenn 1. leere Zelle kommt:
i=24
while cells(i,5)""
.....
......& cells(i,5) & "'!" & [i,6] schreiben
.....
i=i+1
wend
Gruß
Volker
AW: Daten aller Dateien eines Dateiordners einlesen
14.03.2005 17:29:34
Ruth
Danke Volker,
hat super geklappt!
Ruth
P.S.: für Leute, die wie ich am Anfang stehen und versuchen, die Sache nachzuvollziehen:
Ich habe [i,6] durch cells(i,6)ersetzt und schon klappte es!
Anzeige
Nachtrag
14.03.2005 18:00:22
Volker
Hallo Ruth,
thx für die Rückmeldung.
Das Komma hatte ich völlig übersehen.
[a1] ist nämlich schon identisch mit Range("A1") und Cells(1,1) was den Zellbezug angeht.
Aber Experten, wie ich keiner bin, raten von der Kurzschreibweise ab.
Hat irgendwas mit Speicherplatz und Rechenzeit zu tun.
Gruß
Volker

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige