Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
856to860
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
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alle Ordner eines Laufwerks

Alle Ordner eines Laufwerks
22.03.2007 17:18:00
S.Risch
Hallo!
Ausgangssituation: Meine Exel-Mappe ist irgendwo in einem Verzeichnis eines Laufwerks.
Ich möchte alle Ordner Dieses Laufwerks in der Excel-Mappe auflisten und als Hyperlinks zur Verfügung haben. Mit der "SubFolders" methode habe ich ja immer nur die auflistung der Ordner unterhalb eines Verzeichnisses. Ich möchte aber dann auch noch die Ordner auflisten, die noch tiefer in den Verzeichnissen liegen.
Beispiel für das was ich schon habe...
Dim fs, f, f1, s, sf
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("C:\EXCEL-Projekte")
Set sf = f.SubFolders
For Each f1 In sf
s = s & f1.Name
s = s & vbCrLf
Next
MsgBox s

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Ordner eines Laufwerks
22.03.2007 18:28:00
IngGi
Hallo,
Option Explicit
'Variablen für das FileSystemobject und den
'zu bearbeitenden Ordner außerhalb der Prozedur deklarieren!
Dim fs As Object
Dim f As Object
Sub test()
'Variablen für die Dateien und die Unterordner
'innerhalb der Prozedur deklarieren
Dim f1 As Object
Dim sf As Object
'bei erstem Prozeduraufruf FileSystemObject initiieren
'und Startordner übergeben
If fs Is Nothing Then
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("C:\EXCEL-Projekte")
End If
'Alle Dateien des Ordners als Hyperlink in Datei einfügen
For Each f1 In f.Files
Tabelle1.Hyperlinks.Add Anchor:=Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0), _
Address:=f1.Path, TextToDisplay:=f1.Name
Next
'Alle Unterordner "abklappern"
'Diese werden von sf an f übergeben, dann
'rekursiver Aufruf der Prozedur (die Prozedur ruft sich selbst auf)
'Hier liegt auch der Grund, warum zwei Variablen außerhalb der
'Prozedur deklariert werden müssen. Diese würden sonst Ihren Inhalt
'beim rekursiven Aufruf der Prozedur verlieren - dürfen sie aber nicht.
For Each sf In f.SubFolders
Set f = sf
test
Next
End Sub
Gruß Ingolf
Anzeige
AW: Alle Ordner eines Laufwerks
ransi
Hallo S
Versuch den Aufruf mal rekursiv.
Ich nutze diesen Code:
Option Explicit

Dim z
Public Sub Aufruf()
Dim objShell As Object
Dim objFolder As Object
Dim objItem As Object
Set objShell = CreateObject("Shell.Application")
With objShell
    Set objFolder = .BrowseForFolder(0&, "Irgendwas", 0, "D:\")
End With
If Not objFolder Is Nothing Then
    Set objItem = objFolder.Self
    Else: Exit Sub
End If
z = 1
Schreiben objItem.Path
End Sub


Public Sub Schreiben(V)
Dim fso As Object
Dim ordner
Dim Unterordner
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set ordner = fso.getfolder(V)
For Each Unterordner In ordner.subfolders
    Cells(z, 1) = Unterordner.Path
    z = z + 1
    Schreiben Unterordner
Next
Set fso = Nothing
Set ordner = Nothing
End Sub


ransi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige