Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ordner in bestimmten Ordnern anzeigen

Forumthread: 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.
Anzeige

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
Anzeige
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
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige