Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Verzeichnisstruktur auslesen
#1

.xlsx   Aufgabenbeschreibung.xlsx (Größe: 10,72 KB / Downloads: 4)
Hallo zusammen,

ich will aus verschiedenen Netzlaufwerken die Verzeichnisstruktur und Dateinamen auslesen und mit Datum/Größe in einem Sheet ausgeben.

Das reine Auslesen von Pfad und Dateien ließe sich mit diesem Code erledigen:
---

Code:
Option Explicit
Option Compare Text
' ************************************************************************************************
' Autor/en: http://www.online-vba.de - Marc Wershoven
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von www.online-vba.de!
' Original-Quelltext: www.online-vba.de/vba_readfolder.php
' ************************************************************************************************

Const sRootPath As String = "C:\Test" 'Pfad bitte anpassen ohne Trennzeichen am Ende!!!
Private lRowCounter As Long
Private oSheet As Object

'Start der Routine: Call MWDateienMitUnterordnernAuslesen

Public Sub MWDateienMitUnterordnernAuslesen()
     Set oSheet = Sheets.Add
     oSheet.Activate
     oSheet.Cells(1, 1).Select
     Call CreateHeadLinesAndFormat
     lRowCounter = 2
     Call MWReadSubFolder(sRootPath)
     Set oSheet = Nothing
End Sub

Private Sub CreateHeadLinesAndFormat()
   Dim i As Long
    
     oSheet.Cells(1, 1) = "Pfad"
     oSheet.Cells(1, 2) = "Dateiname"
     oSheet.Columns(1).ColumnWidth = 40
     oSheet.Columns(2).ColumnWidth = 40
    
     For i = 1 To 2
         With oSheet
             .Cells(1, i).Interior.ColorIndex = 11
             .Cells(1, i).Font.Color = vbWhite
             .Cells(1, i).Font.Bold = True
         End With
     Next i
End Sub

Private Sub MWReadSubFolder(ByVal sPath As String)
   Dim oFSO As Object
   Dim oFolder As Object
   Dim oSubFolder As Object
   Dim oFile As Object
    
     Set oFSO = CreateObject("Scripting.FileSystemObject")
     Set oFolder = oFSO.getfolder(sPath)
    
     With oSheet
    
         For Each oSubFolder In oFolder.subfolders
        
             'Alle Dateien auflisten
             For Each oFile In oSubFolder.Files
                 .Cells(lRowCounter, 1) = oSubFolder.Path
                 .Cells(lRowCounter, 2) = oFile.Name
                 lRowCounter = lRowCounter + 1
             Next oFile
            
             'Alle Unterverzeichnisse verarbeiten (rekursiv)
             Call MWReadSubFolder(oSubFolder.Path)
        
         Next oSubFolder
    
     End With
    
     Set oFSO = Nothing
     Set oFile = Nothing
     Set oFolder = Nothing
     Set oSubFolder = Nothing
End Sub

---

Mein Problem ist, dass ich verschiedene Netzlaufwerke habe, aus denen die Dateien und eine definierte Tiefe der Verzeichnisstruktur, zusammen in einer Ausgabespalte A alphabetisch sortiert werden sollen.

Was ist der bessere Weg?
Ein Laufwerk nach dem Anderen auslesen oder kann man die abzuarbeitenden Netzlaufwerke, aus denen die Dateien und Verzeichnisse gelesen werden sollen, auch gleich am Anfang des Makros definieren?

Und wie kann ich im Makro für jedes Netzlaufwerk fix definieren, welcher Teil des Pfades ausgelesen werden soll?
Aus Performancegründen soll bei Erreichen der notwendigen Tiefe der weitere Pfad nicht weiter ausgelesen werden.
Also etwa so: "Nimm Verzeichnistiefe 7-8 von Server1 und fülle solange Zeilen mit Verzeichnisnamen, solange in Verzeichnistiefe 8 unterschiedliche Verzeichnisnamen stehen."

Ich hoffe die Beispiel-Datei macht klar, wohin ich will und dass mir jemand helfen kann.
Antworten Top
#2
Hallo

im Forum gibt es eine Beispieldatei mit Makros von verschiedenen Ratgebern zum auflisten eines Ordner oder ganzen Laufwerk.  Vielleicht ist eine fertige Tabelle oder die Makros für dein Vorhaben brauchbar. Einfach mal testen was brauchbar sein kann. Vielleicht aktiviert es eigene Ideen dazu!!

mfg  Gast 123

https://www.clever-excel-forum.de/attach...p?aid=8674
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • HTF
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste