Verzeichnisstruktur auslesen und auflisten
#1
Hi,

kann mir jemand einen VBA code zusammenschreiben der mir alle Ordner und Unterordner inkl. komplettem Pfad auflistet? Irgendwie werde ich nicht fündig.

Beispiel: Alle Ordner, die unter D:\Temp\ liegen sollen aufgelistet werden. (inklusive D:\Temp\ selbst)


So sollte es dann aussehen:

D:\Temp\
D:\Temp\1\
D:\Temp\1\11\
D:\Temp\2\
D:\Temp\22\
usw...

Dabei soll es keine Beschränkung auf die Anzahl der Unterordner geben. Es sollen einfach alle Ordner untereinander beginnend ab A1 aufgelistet werden.

Vielen Dank!

Viele Grüße,
Tim
Top
#2
Code:
Sub M_snb()
  sn=split(createobject("wscript.shell").exec("cmd /c dir D:\temp\* /b/s/ad").stdout.readall,vbcrlf)

  sheet1.cells(1).resize(ubound(sn)+1)=application.transpose(sn)
End Sub
Top
#3
Dankeschön!

Leider funktioniert das nicht mit umlauten im Ordnernamen. Wenn ein zb. ein ä im Pfad vorkommt wird es durch ein " ersetzt.
Kann man das beheben?
Top
#4
Kein Thema

Code:
Private Declare Function OemToCharA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
      
Public Function F_ASC_ANS(ByVal Text As String) As String
  OemToCharA Text, Text
  F_ASC_ANS = Text
End Function

Sub M_snb()
  sn=split(F_ASC_ANS(createobject("wscript.shell").exec("cmd /c dir D:\temp\* /b/s/ad").stdout.readall),vbcrlf)

  sheet1.cells(1).resize(ubound(sn)+1)=application.transpose(sn)
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Reismann
Top
#5
Hervorragend! So sollte das funktionieren.

Ich bin noch ein bisschen am experimentieren... Was müsste ich denn an dem Code ändern wenn ich das ganze ab Zeile 2 (sprich A2) auflisten lassen will?
Top
#6
Code:
sheet1.cells(2,1).resize(ubound(sn)+1)=application.transpose(sn)
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • Reismann
Top
#7
Tolle Sache! 
Beim rumprobieren habe ich mich gefragt ob es auch möglich ist diesen Code irgendwie direkt in ein Dropdown Element einzufügen. Dann würde beim anklicken der Dropdownliste immer der Inhalt des Verzeichnisses aufgelistet. Geht das irgendwie?


Sorry, aber ich bin was vba angeht ein echter Anfänger.
Top
#8
Es gibt viele verschiedene 'dropdownelemente'

z.B.

Code:
sheet1.combobox1.list=sn

Code:
Private Sub Userform_initialize()
   combobox1.list=sn
End Sub

usw.
Top
#9
Jetzt stehe ich ein wenig auf dem Schlauch. Huh

Wenn ich unter Entwicklertools eine ComboBox auf mein Arbeitsblatt zeichne.... Wo und wie muss ich dann den von dir geposteten Code einfügen?
Top
#10
Hallöchen,

nicht fündig geworden?

Gestern Abend erst hatte ich einen Code zum Einlesen von Verzeichnisstrukturen eingestellt ...
http://www.clever-excel-forum.de/Thread-...icht-Excel
Suche nach Ordner, 3. Treffer ...

und das mit der Shell hatten wir vor einiger Zeit auch schon.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste