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

Dateien aus Verzeichnis lesen

Dateien aus Verzeichnis lesen
19.03.2007 09:08:00
Kai
Hallo zusammen,
ich habe hier mal einen Ausschnitt aus einem VBA Code. In diesem Code ließt Excel alle Dateien ein, die sich im Verzeichnis c:\bla befinden. Wie bekomme ich es hin, daß alle Dateien aus dem Verzeichnis c:\bla und allen Unterverzeichnissen eingelesen werden?
ub Zusammenfassen()
Dim wbkQ As Workbook, arr As Variant, iNr As Integer
Dim datUhr As Date, iRowQ As Long, iRowZ As Long, iCol As Integer
Const strVerz = "c:\bla" ' Ordner/Verzeichnis mit den Quellmappen
Const boolInf = False ' False, wenn Dateiname+Datum nicht in die Liste sollen
Const vBlatt = 1 ' "Tabelle1" ' Blattnummer oder Blattname in den Quellmappen

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien aus Verzeichnis lesen
19.03.2007 10:03:54
Kai
Hallo Jürgen,
ich habe jetzt mal .SearchSubFolders = True auf true gesetzt. Es klappt immer noch nicht. Hier mal mein ganzer Code. Kannst du ihn dir mal anschauen?
Option Explicit

Sub Zusammenfassen()
Dim wbkQ As Workbook, arr As Variant, iNr As Integer
Dim datUhr As Date, iRowQ As Long, iRowZ As Long, iCol As Integer
Const strVerz = "c:\bla"       ' Ordner/Verzeichnis mit den Quellmappen
Const boolInf = False             ' False, wenn Dateiname+Datum nicht in die Liste sollen
Const vBlatt = 1 ' "Tabelle1"    ' Blattnummer oder Blattname in den Quellmappen
Application.ScreenUpdating = False
Application.EnableEvents = False
On Error GoTo ERRORHANDLER
arr = FileArray(strVerz, "*.xls")
For iNr = 1 To UBound(arr)
If arr(iNr)  ThisWorkbook.Name Then
datUhr = Now
Set wbkQ = Workbooks.Open(strVerz & "\" & arr(iNr), 0)
With wbkQ.Worksheets(vBlatt)
iRowQ = .Cells(Rows.Count, 1).End(xlUp).Row
ThisWorkbook.Activate
If iNr = 1 Then
If IsEmpty(Cells(1, 1)) Then
.Rows(1).Copy
Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Cells(1, 1).Select
ActiveWindow.FreezePanes = True
End If
If boolInf Then
iCol = Cells(1, Columns.Count).End(xlToLeft).Column
If Cells(1, iCol - 1) & Cells(1, iCol) = "Quelldateiam" Then
iCol = iCol - 1
Else
iCol = iCol + 1
Range(Cells(1, iCol), Cells(1, iCol + 1)) = Split("Quelldatei am")
End If
End If
End If
If iRowQ > 1 Then
iRowZ = Cells(Rows.Count, 1).End(xlUp).Row + 1
Range(.Rows(2), .Rows(iRowQ)).Copy
Cells(iRowZ, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Application.CutCopyMode = False
If boolInf Then
Range(Cells(iRowZ, iCol), Cells(iRowZ + iRowQ - 2, iCol)) = wbkQ.Name
Range(Cells(iRowZ, iCol + 1), Cells(iRowZ + iRowQ - 2, iCol + 1)) = datUhr
End If
End If
End With
wbkQ.Close savechanges:=False
End If
Next iNr
If UBound(arr) > -1 Then
Rows(1).HorizontalAlignment = xlHAlignCenter
If boolInf Then Columns(iCol + 1).NumberFormat = "dd.mm.yyyy hh:mm:ss"
ActiveSheet.UsedRange.Columns.AutoFit
iRowZ = iRowZ + iRowQ - 1
Application.Goto Cells(IIf(iRowZ > 25, iRowZ - 25, 1), 1), True
Cells(iRowZ, 1).Select
End If
ERRORHANDLER:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub


Function FileArray(ByVal strPath As String, sPattern As String)
Dim arr(), iNr As Integer, tmp As String
With Application.FileSearch
.NewSearch
.LookIn = strPath
.SearchSubFolders = True
.Filename = sPattern
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
ReDim arr(1 To .FoundFiles.Count)
For iNr = 1 To .FoundFiles.Count
tmp = .FoundFiles(iNr)
arr(iNr) = Right(tmp, Len(tmp) - InStrRev(tmp, "\"))
Next iNr
Else
ReDim arr(-1 To -1)
MsgBox "Es wurden keine Dateien gefunden.", vbInformation
End If
End With
FileArray = arr
End Function

Anzeige
AW: Dateien aus Verzeichnis lesen
19.03.2007 10:34:36
Jürgen
Hallo Kai,
bist Du sicher das deine Pfadangabe stimmt? Bei mir liefert Deine Funktion FileArray ein korrektes Ergebnis.
Nur mal Interessehalber: warum verwendest Du überhaupt diese Funktion?
Gruß
Jürgen
AW: Dateien aus Verzeichnis lesen
19.03.2007 11:15:00
Kai
Ich verwende diese Funktion weil ich keine Ahnung habe und diesen Code hier im Forum gefunden habe :-) Das heisst, ich mache das hier alles nur mit eurer Hilfe.
Mein Ziel ist: Ich habe 600 Excel Arbeitsmappen in Unterverzeichnissen. Alle Daten stehn in Tabelle1. Diese Arbeitsmappen sollen zu einer zusammengeführt werden. Vielleicht hast du ja noch eine bessere Idee, wie man dies machen kann.
Gruß Kai
Anzeige
AW: Dateien aus Verzeichnis lesen
19.03.2007 13:07:03
Jürgen
Hallo Kai,
versuch es mal damit. Mappe öffnen, Makro starten, Ordner auswählen und dann nen Kaffe trinken gehen.
https://www.herber.de/bbs/user/41173.xls
Gruß
Jürgen
AW: Dateien aus Verzeichnis lesen
19.03.2007 13:45:00
Kai
Hallo Jürgen,
das sieht schon super aus. Respekt! Allerdings wird jedesmal eine neue Tabelle angelegt wenn eine Mappe eingelesen wird. Es sollte nur eine Tabelle geben, wo die Mappen einfach untereinander gehängt werden.
Gruß Kai
AW: Dateien aus Verzeichnis lesen
20.03.2007 07:54:51
Jürgen
Hallo Kai,
sorry das es gestern nichts mehr geworden ist. Das müsste es jetzt aber sein.
https://www.herber.de/bbs/user/41207.xls
Rückmeldung wäre nett.
Gruß
Jürgen
Anzeige
AW: Dateien aus Verzeichnis lesen
20.03.2007 11:11:19
Kai
Hallo Jürgen,
eine wirklich excellente Arbeit. Klappt mehr als gut. Vielen Dank.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige