Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
996to1000
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
Inhaltsverzeichnis

Dateiinfo aller Dateien in allen Verz./Unterverz

Dateiinfo aller Dateien in allen Verz./Unterverz
03.08.2008 09:37:00
StefanK
Hallo liebe Herber-Freunde
mit folgendem Code (Quelle Archiv) kann ich alle Dateiinformationen aus einem definierten Verzeichnis auslesen >> funktioniert prima !
Ich benötige jedoch eine Möglichkeit, daß ein Makro dieses auch für die jeweiligen Unterverzeichnisse und der darin enthaltenen Dateien durchführt !
Wie kann man so etwas machen ?
Freu mich auf eine Antwort
Besten Gruß
Stefan
hier der Code:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Option Explicit

Sub Dateieigenschaften()
'von k.rola
Const STRFOLDER As String = "D:\Daten" 'anpassen
Dim objShell As Object
Dim objFolder As Object
Dim x As Byte
Dim spalte As Integer
Dim zeile As Long
Dim varName, arrHeaders(34)
If Dir(STRFOLDER, 16) = "" Then
MsgBox "Der Ordner " & STRFOLDER & " wurde nicht gefunden!" & Space(10), 64, "weise hin..."
Exit Sub
End If
Application.ScreenUpdating = False
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(STRFOLDER)
spalte = 1
For x = 0 To 33
arrHeaders(x) = objFolder.GetDetailsOf(varName, x)
Cells(1, spalte + x) = arrHeaders(x)
Next
Rows(1).Font.Bold = True
zeile = 2
For Each varName In objFolder.Items
For x = 0 To 33
Cells(zeile, spalte + x) = objFolder.GetDetailsOf(varName, x)
Next
zeile = zeile + 1
Next
Columns.AutoFit
Application.ScreenUpdating = True
End Sub


9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateiinfo aller Dateien in allen Verz./Unterverz
03.08.2008 10:30:00
Nepumuk
Hallo Stefan,
wie sollen die dann dargestellt werden? Das Shell-Objekt lässt sich nicht so verschachteln, dass das in einem Durchgang geht. Am einfachsten wäre es, die Ordner selbst wegzulassen und alle Dateien einzeln zu parsen. Man könnte ja den kompletten Pfad z.B. in die erste Spalte schreiben.
Gruß
Nepumuk

AW: Dateiinfo aller Dateien in allen Verz./Unterverz
03.08.2008 10:39:33
StefanK
Hallo Nepumuk
vielen Dank für die schnelle Antwort.
Daran, alle Dateien in ein Verzeichnis zu packen hab ich auch schon gedacht.
Nur sind es xx Unterverzeichnisse mit mehr als 1000 Dateien
Das gestaltet sich dann als "Wahnsinns-Arbeit" ;=)
Die Darstellung wäre aus meiner Sicht wie folgt (jeweils in einer Spalte)
Verzeichnis (wäre neu)
Name
Größe
Typ
u.s.w.
ggfs auch Verzeichnis und Name in einer Spalte / Zelle
ne Idee ? :=)
Gruß
Stefan

Anzeige
AW: Dateiinfo aller Dateien in allen Verz./Unterverz
03.08.2008 11:42:00
StefanK
Hallo Hajo
als Ansatz perfekt - nur:
Wichtig sind mir die Dateiinfo's - damit kann ich sie leider nicht auslesen
ich weiss leider nicht, wie man den Ansatz weiterentwickeln muss
Gruß
Stefan

AW: Dateiinfo aller Dateien in allen Verz./Unterverz
03.08.2008 11:36:49
Nepumuk
Hallo Stefan,
versuch es mal damit:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub Dateieigenschaften()
    Const STRFOLDER As String = "D:\Eigene Dateien" 'anpassen
    Dim objShell As Object, objFolder As Object
    Dim lngColumn As Long, lngRow As Long
    Dim vntFile As Variant
    Dim strPath As String, strFile As String
    
    If Dir(STRFOLDER, 16) = "" Then
        MsgBox "Der Ordner " & STRFOLDER & " wurde nicht gefunden!", vbCritical, "Fehler"
        Exit Sub
    End If
    
    Application.ScreenUpdating = False
    
    Set objShell = CreateObject("Shell.Application")
    Set objFolder = objShell.Namespace(STRFOLDER)
    
    Cells.Clear
    Cells(1, 1).Value = "Pfad"
    lngRow = 1
    
    For lngColumn = 0 To 50
        Cells(lngRow, lngColumn + 2) = objFolder.GetDetailsOf("", lngColumn)
    Next
    
    Rows(1).Font.Bold = True
    
    With Application.FileSearch
        .NewSearch
        .FileType = msoFileTypeAllFiles
        .LookIn = STRFOLDER
        .SearchSubFolders = True
        .Execute
        
        For Each vntFile In .FoundFiles
            lngRow = lngRow + 1
            strPath = Left$(vntFile, InStrRev(vntFile, "\") - 1)
            strFile = Right$(vntFile, Len(vntFile) - InStrRev(vntFile, "\"))
            Set objFolder = objShell.Namespace((strPath))
            Cells(lngRow, 1).Value = strPath
            For lngColumn = 0 To 50
                Cells(lngRow, lngColumn + 2).Value = objFolder.GetDetailsOf( _
                    objFolder.ParseName(strFile), lngColumn)
            Next
        Next
        
    End With
    
    Columns.AutoFit
    Application.ScreenUpdating = True
    
End Sub

Gruß
Nepumuk

Anzeige
Perfekt !
03.08.2008 19:33:07
StefanK
Hallo Nepumuk
PERFEKTE Lösung !
Danke Dir sehr
Das hat mir sehr weitergeholfen
... lösung ist in meiner persönlichen FAQ-Liste gelandet ;=)
Besten Dank und Gruss
Stefan

AW: Dateiinfo aller Dateien in allen Verz./Unterverz
03.08.2008 14:30:53
Tino
Hallo,
habe mal etwas zusammengebastelt.
Der Original- Code stammt von Nepumuk habe diesen nur etwas angepasst.
https://www.herber.de/bbs/user/54305.xls
Gruß Tino

Korrektur, wegen Unterordner
03.08.2008 15:14:28
Tino
Hallo,
habe ich fasst vergessen.
Mach aus der Zeile
FindFiles strFolder, "*", lngFilecount, False
FindFiles strFolder, "*", lngFilecount, True
oder einfach nur
FindFiles strFolder, "*", lngFilecount
Damit die Unterordner mit eingelesen warden.
Gruß Tino

Anzeige
AW: Korrektur, wegen Unterordner
03.08.2008 19:31:22
StefanK
Hallo Tino
danke für Deine Antwort - die Datei
interessante Lösung (hab Datei gespeichert)
leider liefert er nicht alle Informationen
Besten Dank für die Antwort
Gruß
Stefan
ps: lösung von nepumuk ist perfekt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige