Files listen

Bild

Betrifft: Files listen
von: Rolf H.
Geschrieben am: 08.06.2015 10:05:10

Hallo zusammen,
mit dem folgenden Makro (das ich aus diesem Forum habe) lassen sich die Files eines Ordners bequem auflisten.

Sub FilesListen()
a = 1
sPfad = ActiveWorkbook.Path
Set fs = CreateObject("scripting.FileSystemObject")
Set fVerz = fs.getFolder(sPfad)
Set fdateien = fVerz.Files
    For Each fDatei In fdateien
        If InStr(fDatei, "") > 0 Then
           strDat = fDatei.Name
        End If
    Cells(a, 1) = strDat
    a = a + 1
    Next fDatei
End Sub

Gibt es die Möglichkeit, dass auch die Files der Ordner, die sich im Ausgangsordner befinden, gleich mitgelistet werden?
Schöne Grüße
Rolf

Bild

Betrifft: AW: Files listen
von: Klexy
Geschrieben am: 08.06.2015 11:02:37
Was ist ein Ausgangsordner?

Bild

Betrifft: AW: Files listen
von: Rolf H.
Geschrieben am: 08.06.2015 11:33:03
Hallo Klexi,
ActiveWorkbook befindet sich im Ausgangsordner.
Der enthält mehrere Ordner und Files.
Ich stelle mir vor, dass das Makro ohne die Namen der Unterordner zu kennen auch deren Files mit in die ausgegebene Liste aufnimmt.
Gruß Rolf

Bild

Betrifft: AW: Files listen
von: Klexy
Geschrieben am: 08.06.2015 13:06:12
Ach so, mit Unterordnern! Hab ich nicht genau genug gelesen.

Bild

Betrifft: AW: Files listen
von: Mullit
Geschrieben am: 08.06.2015 11:24:20
Hallo,
da gibt's die SubFolders-Eigenschaft:
http://msdn.microsoft.com/en-us/library/e1dthkks%28v=vs.84%29.aspx
http://msdn.microsoft.com/en-us/library/9kcx47hd%28v=vs.84%29.aspx
Gruß, Mullit

Bild

Betrifft: AW: Files listen
von: Rudi Maintaire
Geschrieben am: 08.06.2015 11:43:08
Hallo,

Sub DateiListe()
  Dim FSO As Object, oFolder As Object, oDictF As Object
  Dim strFolder As String, arrHeader, wksListe As Worksheet
  Dim lngColumns As Long
  
  Application.ScreenUpdating = False
  
  strFolder = ActiveWorkbook.Path
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set oFolder = FSO.GetFolder(strFolder)
  Set oDictF = CreateObject("Scripting.dictionary")
  
  prcFiles oFolder, oDictF
  prcSubFolders oFolder, oDictF
    
  Cells(1, 1).Resize(oDictF.Count) _
        = WorksheetFunction.Transpose(WorksheetFunction.Transpose(oDictF.Items))
End Sub

Sub prcFiles(oFolder, oDictF)
  Dim oFile As Object
  For Each oFile In oFolder.Files
    With oFile
      oDictF(oDictF.Count + 1) = .Name
    End With
  Next
End Sub

Sub prcSubFolders(oFolder, oDictF)
  Dim oSubFolder As Object
  For Each oSubFolder In oFolder.SubFolders
    prcFiles oSubFolder, oDictF
    prcSubFolders oSubFolder, oDictF
  Next
End Sub

Gruß
Rudi

Bild

Betrifft: AW: Files listen
von: Klexy
Geschrieben am: 08.06.2015 12:10:36
Hi Rudi,
bei mir entsteht zwar die korrekte Anzahl der Einträge, allerdings immer mit dem Namen der alphanumerisch ersten Datei.

Bild

Betrifft: AW: Files listen
von: Rolf H.
Geschrieben am: 08.06.2015 12:15:12
Hallo Rudi,
mir geht es ebenso wie Klexi.
Gruß
Rolf

Bild

Betrifft: AW: Files listen
von: Rudi Maintaire
Geschrieben am: 08.06.2015 12:17:38
Hallo,
1x zu oft Transponiert.
Cells(1, 1).Resize(oDictF.Count) _
= WorksheetFunction.Transpose(oDictF.items)
Gruß
Rudi

Bild

Betrifft: AW: Files listen
von: Rolf H.
Geschrieben am: 08.06.2015 12:21:35
Hallo Rudi,
nochmals danke.
Klappt vorzüglich und ist genau was ich suchte.
Gruß
Rolf

Bild

Betrifft: AW: Files listen
von: Rolf H.
Geschrieben am: 08.06.2015 11:56:16
Hallo Klexy, Mullit und Rudi,
danke für euere Hilfen. Jetzt brauche ich erst mal ein paar Stunden, um euere Vorschläge auszuprobieren.
Gruß
Rolf

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Files listen"