VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

XL-Dateien aus Haupt- und Unterverzeichnissen einlesen

Gruppe

Datei

Bereich

Verzeichnis

Thema

XL-Dateien aus Haupt- und Unterverzeichnissen einlesen

Problem

Wie kann ich alle Excel-Dateien des aktuellen Verzeichnisses einschliesslich aller Unterverzeichnisse in ein Tabellenblatt einlesen lassen?

Lösung

Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.




StandardModule: basMain

Public Const PROCESS_QUERY_INFORMATION = &H400
Public Const WAIT_TIMEOUT = &H102&

Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
    ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, _
    ByVal dwMilliseconds As Long) As Long

Sub DOSShell()
   Dim sFile As String, sPath As String
   sPath = Range("B1").Value
   sFile = Application.DefaultFilePath & "\dirlist.txt"
   WartenBisFertig ("command.com /c dir/s/b " & sPath & "\*.xls >" & sFile)
   Workbooks.Open sFile
   Columns.AutoFit
End Sub

Sub WartenBisFertig(strEXE As String)
   Dim ProcessID As Long
   Dim hProcess As Long
   Dim RetVal As Long
   ProcessID = Shell(strEXE, vbHide)
   hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, ProcessID)
   Do
      DoEvents
      RetVal = WaitForSingleObject(hProcess, 50)
   Loop Until RetVal <> WAIT_TIMEOUT
End Sub

    


Beiträge aus dem Excel-Forum zu den Themen Datei und Verzeichnis