Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
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

Ordner in bestimmten Ordnern anzeigen

Ordner in bestimmten Ordnern anzeigen
Gunter
Hallo Zusammen,
ich hab hier im Forum den folgenden Code, der auch super funktioniert, gefunden.
Sub FindFiles_Projekte_Film_Certificate()
Dim objFS_Film_Certificate As FileSearch
Dim obj_P As Variant, obj_Film_Certificate As Variant, arrFilesFound() As String
Dim varProjektFolder As Variant, FileCount As Long
On Error GoTo Fehler
'Verzeichnis mit Projektordnern wählen
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Verzeichnis mit ProjektOrdnern auswählen"
If .Show = -1 Then
varProjektFolder = .SelectedItems(1)
'Ordner der Projekte finden
obj_P = Dir(varProjektFolder & "\*", vbDirectory)
Do Until obj_P = ""
'Prüfen ob gefundenes Element einen Ordner2 enthält
Select Case VBA.GetAttr(obj_P & Application.PathSeparator & "Film_Certificate")
Case vbDirectory, vbDirectory + vbReadOnly, vbDirectory + vbReadOnly + vbArchive, _
vbDirectory + vbArchive
'Ordner2 durchsuchen
Set objFS_Film_Certificate = Application.FileSearch
With objFS_Film_Certificate
.NewSearch
.LookIn = varProjektFolder & Application.PathSeparator _
& obj_P & Application.PathSeparator & "Film_Certificate"
.SearchSubFolders = True
'Exceldateien finden
.Filename = "*.xml"
If .Execute > 0 Then
'Dateien in Array schrieben
For Each obj_Film_Certificate In .FoundFiles
FileCount = FileCount + 1
ReDim Preserve arrFilesFound(1 To FileCount)
arrFilesFound(FileCount) = obj_Film_Certificate
Next
End If
End With
Case Else
'do nothing
End Select
Resume01:
'nächsten ProjektOrdner finden
obj_P = VBA.Dir
Loop
End If
End With
If FileCount > 0 Then
'gefundenen Dateien weiterverarbeiten
'Dateiliste in neue Tabelle ausgeben
Worksheets.Add
For FileCount = 1 To FileCount
'      MsgBox "Datei " & FileCount & "  : " & arrFilesFound(FileCount)
Cells(FileCount + 1, 1) = arrFilesFound(FileCount)
Next
Else
MsgBox "No Files founds"
End If
Fehler:
With Err
Select Case .Number
Case 0
Case 53 'Datei wurde nicht gefunden
'MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
Resume Resume01
Case 76 'Pfad nicht gefunden
'MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
Resume Resume01
Case Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End Select
End With
End Sub

Ich möchte nun nicht die einzelnen .xml-Dateien angezeigt bekommen, sondern nur noch alle Unterordner die sich im "Film_Certificate" Ordner befinden. Wie müsste das Script geändert werden damit nur die Ordner gelistet werden.
Für zweckdienliche Hinweise herzlichen Dank.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Ordner in bestimmten Ordnern anzeigen
09.01.2012 14:45:58
Rudi
Hallo,
so?
Sub ListFolders()
Dim strFolder As String
Dim objFolders As Object
Dim OFS As Object, oFolder As Object, oFldr As Object
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Ordner wählen"
If .Show = -1 Then
strFolder = .SelectedItems(1)
End If
End With
If strFolder  "" Then
Set objFolders = CreateObject("Scripting.Dictionary")
Set OFS = CreateObject("Scripting.filesystemobject")
Set oFolder = OFS.getfolder(strFolder)
objFolders("Ordner") = 0
objFolders(oFolder.Path) = 0
For Each oFldr In oFolder.subfolders
objFolders(oFldr.Path) = 0
prcSubfolders oFldr, objFolders
Next
With Worksheets.Add
.Cells(1, 1).Resize(objFolders.Count) = Application.Transpose(objFolders.keys)
.Columns.AutoFit
End With
End If
End Sub

Sub prcSubfolders(oSubFolder As Object, objFolders As Object)
Dim OFS As Object, oFldr As Object
Set OFS = CreateObject("Scripting.filesystemobject")
For Each oFldr In oSubFolder.subfolders
objFolders(oFldr.Path) = 0
prcSubfolders oFldr, objFolders
Next
End Sub

Gruß
Rudi
Anzeige
AW: Ordner in bestimmten Ordnern anzeigen
09.01.2012 16:28:20
Gunter
Hallo Rudi,
vielen Dank für deine Antwort. Vom Prinzip ja, im Detail leider nein. Es werden jetzt alle Ordner gelistet und nicht nur die, welche sich im "Film_Certificate" Ordner befinden.
Die Ordner Struktur ist: Kino_Name\Film_Certificate\Film_Name, wobei im Kino_Name Ordner noch weitere Ordner enthalten sind. Diese möchte ich aber nicht mit gelistet haben. Sondern nur die Ordner, welche sich im Film_Certificate Ordner befinden.
Ich hofffe die Anpassung ist nicht mehr so kompliziert und wäre über weitere Unterstützung sehr dankbar.
Gruss
Gunter
AW: Ordner in bestimmten Ordnern anzeigen
10.01.2012 11:53:04
Rudi
Hallo,
nur die Ordner, welche sich im Film_Certificate Ordner befinden
dann wähl den doch aus.
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige