Sortierung eingelesene Ordnerstruktur
04.03.2020 16:20:58
Turbo
mittels eines Makros wird eine Ordnerstruktur inklusive aller Unterordner eingelesen und in Excel abgebildet. Prinzipiell funktioniert das auch prima ABER Excel sortiert ja bekanntermaßen die Zahlen falsch.
Beispiel in verkürzter Form:
1_1_1
1_1_10
1_1_2
Gibt es eine Möglichkeit Excel dazu zu bringen, beim einlesen die Struktur so zu belassen wie sie im Windows Explorer angezeit wird.
1_1_1
1_1_2
1_1_10
Das einfachste wäre sicher den einstelligen Zahlen eine 0 voranzustellen aber das ist leider keine gute Lösung, da die Bezeichnungen in der Schreibweise verbleiben müssen.
Vielleicht gibt es ja doch eine Lösung.
Option Explicit
Dim fso As Object
Public Sub OrdnerListen_Start()
Set fso = CreateObject("Scripting.FileSystemObject")
ActiveSheet.UsedRange.ClearContents
ListFolders "D:\Test", ActiveSheet.Range("A1")
End Sub
Sub ListFolders(ByVal Path As Variant, ByRef c As Range)
Dim p
If Not IsObject(Path) Then Set Path = fso.GetFolder(Path) 'string to object
c.Value = Path.Name
Set c = c.Offset(1, 1)
For Each p In OrderedList(Path.SubFolders)
ListFolders p, c
Next
Set c = c.Offset(0, -1)
End Sub
Function OrderedList(ByVal List As Object) As Collection
Dim coll As New Collection, p1 As Variant, i As Integer
For Each p1 In List
If coll.Count
Grüße