Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Dateiinfo aller Dateien in allen Verz./Unterverz

Betrifft: Dateiinfo aller Dateien in allen Verz./Unterverz von: StefanK
Geschrieben am: 03.08.2008 09:37:36

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


  

Betrifft: AW: Dateiinfo aller Dateien in allen Verz./Unterverz von: Nepumuk
Geschrieben am: 03.08.2008 10:30:15

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


  

Betrifft: AW: Dateiinfo aller Dateien in allen Verz./Unterverz von: StefanK
Geschrieben am: 03.08.2008 10:39:33

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


  

Betrifft: AW: Dateiinfo aller Dateien in allen Verz./Unterverz von: Hajo_Zi
Geschrieben am: 03.08.2008 10:45:26

Hallo Stefan,

vielleicht wäre dies http://hajo-excel.de/chCounter3/getfile.php?id=21 ein Ansatz?

GrußformelHomepage


  

Betrifft: AW: Dateiinfo aller Dateien in allen Verz./Unterverz von: StefanK
Geschrieben am: 03.08.2008 11:42:16

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


  

Betrifft: AW: Dateiinfo aller Dateien in allen Verz./Unterverz von: Nepumuk
Geschrieben am: 03.08.2008 11:36:49

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


  

Betrifft: Perfekt ! von: StefanK
Geschrieben am: 03.08.2008 19:33:07

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


  

Betrifft: AW: Dateiinfo aller Dateien in allen Verz./Unterverz von: Tino
Geschrieben am: 03.08.2008 14:30:53

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


  

Betrifft: Korrektur, wegen Unterordner von: Tino
Geschrieben am: 03.08.2008 15:14:28

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


  

Betrifft: AW: Korrektur, wegen Unterordner von: StefanK
Geschrieben am: 03.08.2008 19:31:22

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


 

Beiträge aus den Excel-Beispielen zum Thema "Dateiinfo aller Dateien in allen Verz./Unterverz "