Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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?
Antworten 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
Antworten 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?
Antworten 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
Antworten 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.
Antworten 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.
Antworten 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?
Antworten 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)
Antworten Top


Gehe zu:


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