Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1084to1088
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

Verzeichnisstruktur getrennt auslesen

Verzeichnisstruktur getrennt auslesen
Lemmi
Hallo Zusammen,
ich möchte Verzeichnisse und Ihre Dateinamen auslesen!
Ein Verzeichnis heißt z. B. Haus die Datei heißt Rechnung01.pdf
Ich möchte das, der Verzeichnisname Haus in eine Zelle A1 und der Dateinamen Rechnung01.pdf immer in die Spalte P eingetragen wird!
Heist das Verzeichnis jetzt Garten und das Unterverzeichnis Beet und die Datei Gemüse.pdf so würde die Zelle A1 Haus beinhalten B1 Beet und P1 Gemüse.pdf
Gruß
Lemmi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Verzeichnisstruktur getrennt auslesen
25.06.2009 22:27:36
Josef
Hallo Lemmi,
' **********************************************************************
' Modul: Modul4 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub ListFilesAndFolders()
  Dim objFiles() As Object
  Dim result As Long, lngIndex As Long
  
  On Error GoTo ErrExit
  GMS
  
  result = FileSearchINFO(objFiles, "E:\", "*.pdf", True)
  
  If result <> 0 Then
    With Sheets("Tabelle3")
      For lngIndex = 0 To UBound(objFiles)
        .Cells(lngIndex + 1, 1) = objFiles(lngIndex).ParentFolder.Path
        .Cells(lngIndex + 1, 16) = objFiles(lngIndex).Name
      Next
      .Range("A1:O1").EntireColumn.ColumnWidth = 1
      .Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :="\", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), Array(4, 2), _
        Array(5, 2), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), _
        Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15, 2))
      
      .Columns.AutoFit
    End With
  End If
  
  
  
  ErrExit:
  With Err
    If .Number <> 0 Then MsgBox "Fehler " & .Number & vbLf & vbLf & _
      .Description & vbLf & vbLf & "In Prozedur (ListFilesAndFolders) in Modul Modul4", _
      vbExclamation, "Fehler in Modul4 / ListFilesAndFolders"
  End With
  
  GMS True
  
End Sub


'by J.Ehrensberger
Private Function FileSearchINFO(ByRef Files() As Object, ByVal InitialPath As String, Optional ByVal FileName As String = "*", _
    Optional ByVal SubFolders As Boolean = False) As Long

  
  '# PARAMETERINFO:
  '# Files: Datenfeld zur Ausgabe der Suchergebnisse
  '# InitialPath: String der das zu durchsuchende Verzeichnis angibt
  '# FileName: String der den gesuchten Dateityp oder Dateinamen enthält (Optional, Standard="*.*" findet alle Dateien)
  '# Beispiele: "*.txt" - Findet alle Textdateien
  '# "*name*" - Findet alle Dateien mit "name" im Dateinamen
  '# "*.avi;*.mpg" - Findet .avi und .mpg Dateien (Dateitypen mit ; trennen)
  '# SubFolders: Boolean gibt an, ob Unterordner durchsucht werden sollen (Optional, Standard=False)
  
  
  Dim fobjFSO As Object, ffsoFolder As Object, ffsoSubFolder As Object, ffsoFile As Object
  Dim intC As Integer, varFiles As Variant
  
  Set fobjFSO = CreateObject("Scripting.FileSystemObject")
  
  Set ffsoFolder = fobjFSO.GetFolder(InitialPath)
  
  On Error GoTo ErrExit
  
  If InStr(1, FileName, ";") > 0 Then
    varFiles = Split(FileName, ";")
  Else
    Redim varFiles(0)
    varFiles(0) = FileName
  End If
  For Each ffsoFile In ffsoFolder.Files
    If Not ffsoFile Is Nothing Then
      For intC = 0 To UBound(varFiles)
        If LCase(fobjFSO.GetFileName(ffsoFile)) Like LCase(varFiles(intC)) Then
          If IsArray(Files) Then
            Redim Preserve Files(UBound(Files) + 1)
          Else
            Redim Files(0)
          End If
          Set Files(UBound(Files)) = ffsoFile
          Exit For
        End If
      Next
    End If
  Next
  
  If SubFolders Then
    For Each ffsoSubFolder In ffsoFolder.SubFolders
      FileSearchINFO Files, ffsoSubFolder, FileName, SubFolders
    Next
  End If
  
  If IsArray(Files) Then FileSearchINFO = UBound(Files) + 1
  ErrExit:
  Set fobjFSO = Nothing
  Set ffsoFolder = Nothing
End Function

Public Sub GMS(Optional ByVal Modus As Boolean = False)
  Static lngCalc As Long
  
  With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Not Modus Then lngCalc = .Calculation
    If Modus And lngCalc = 0 Then lngCalc = -4105
    .Calculation = IIf(Modus, lngCalc, -4135)
    .Cursor = IIf(Modus, -4143, 2)
    
  End With
  
End Sub

Gruß Sepp

Anzeige
AW: Verzeichnisstruktur getrennt auslesen
26.06.2009 19:54:56
Lemmi
Hallo Sepp,
vielen Dank für deine Hilfe, leider gibt er mir immer eine Fehlermeldung heraus! Fehler 429?
Gruß
Lemmi
AW: Verzeichnisstruktur getrennt auslesen
27.06.2009 20:50:19
Josef
Hallo Lemmi,
zur Fehlernummer gehört wohl auch eine Beschreibung, was steht dort?
Gruß Sepp

AW: Verzeichnisstruktur getrennt auslesen
28.06.2009 17:38:29
Lemmi
Hallo Sepp,
hier die Fehlerbeschreibung:
Fehler 429
Obpjekterstellung durch Active X- Komonente nicht möglich
In Prozedur (ListFilesAndFolders) in ModulModul4
Gruß
Lemmi
Verzeichnisstruktur getrennt auslesen
26.06.2009 10:29:43
Alfons
Hallo,
versuch es mal damit:
Dateilisten erstellen
Im Register Extras die Option 'Ordnerebenen in getrennte Spalten' aktivieren.
Gruß
Alfons
http://vba1.de
Anzeige
AW: Verzeichnisstruktur getrennt auslesen
26.06.2009 20:39:12
Lemmi
Hallo Alfons,
bekomme leider immer eine Fehlermeldung:
kein Datenträger vorhanden..... !..... obwohl ich die Laufwerke ausgewählt habe und diese natürlich vorhanden sind!
Hast Du eine Idee warum das So ist?
Gruß
Lemmi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige