Forums Neueste Beiträge
 

VBA: Daten aus Dateien zusammensammeln

18/04/2009 - 15:17 von Andreas Wenzke | Report spam
Hallo NG!

Ich habe eine solche Struktur:

Datum | Foo | Bar | Bazz
-
| Test | Hallo | Welt

Und ich habe viele Dateien der folgenden Pfadstruktur:

2009\2009-02\2009-02-17\17.02.2009 Daten.xls
2009\2009-02\2009-02-18\18.02.2009 Daten.xls
usw.

Bei diesen ist das Feld "Datum" i.d.R. nicht ausgefüllt, da es ja
bereits im Pfad steckt.

Nun möchte ich diese Daten in eine Übersichtsdatei mit derselben
Struktur kopieren (Überschriften sind schon vorbereitet, analog zu den
einzelnen Dateien).
Dabei soll die Datumsspalte automatisch mit dem Datum der Datei
(entweder aus dem Ordner- dem Dateinamen, je nachdem, was besser ist)
belegt werden.

Hat hier jemand ein paar Stichwörter für eine weitergehende Doku-Suche
oder gar zwei, drei Zeilen Code für einen Ansatz?
Vielen Dank im Voraus!

Liebe Grüße,
Andreas
 

Lesen sie die antworten

#1 Andreas Killer
18/04/2009 - 17:15 | Warnen spam
Andreas Wenzke schrieb:

Nun möchte ich diese Daten in eine Übersichtsdatei mit derselben
Struktur kopieren (Überschriften sind schon vorbereitet, analog zu den
einzelnen Dateien).
Dabei soll die Datumsspalte automatisch mit dem Datum der Datei
(entweder aus dem Ordner- dem Dateinamen, je nachdem, was besser ist)
belegt werden.

Hat hier jemand ein paar Stichwörter für eine weitergehende Doku-Suche
oder gar zwei, drei Zeilen Code für einen Ansatz?


'Nicht zwischen Groß-/Kleinschreibung unterscheiden
Option Compare Text

Sub Main()
Dim fs As Object, f As Object
Dim i As Long, j As Long, y As Long
'Datum eintragen ab Zeile 2
y = 2
'Zugriff auf das Dateisystem eines Computers
Set fs = CreateObject("Scripting.FileSystemObject")
'Alle Dateien des Ordners durchlaufen
For Each f In fs.GetFolder("C:\2009\2009-02\2009-02-17\").Files
'Welche Extension hat die Datei
Select Case fs.GetExtensionName(f.Path)
Case "xls"
'Suche Beginn des Dateinamens
i = InStrRev(f.Path, "\")
'Suche 1. Leerstelle in Dateiname
j = InStr(i, f.Path, " ")
'Datum extrahieren
Datum = Mid(f.Path, i + 1, j - i - 1)
'In Zelle eintragen
Range("A" & y) = Datum
'Nàchste Zeile
y = y + 1
End Select
Next
End Sub

Ähnliche fragen