Registriert seit: 17.12.2015
Version(en): Office365
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
Registriert seit: 29.09.2015
Version(en): 2030,5
21.01.2016, 15:34
(Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2016, 15:35 von snb.)
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
Registriert seit: 17.12.2015
Version(en): Office365
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?
Registriert seit: 29.09.2015
Version(en): 2030,5
21.01.2016, 16:51
(Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2016, 16:52 von snb.)
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:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• Reismann
Registriert seit: 17.12.2015
Version(en): Office365
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?
Registriert seit: 29.09.2015
Version(en): 2030,5
Code:
sheet1.cells(2,1).resize(ubound(sn)+1)=application.transpose(sn)
Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:1 Nutzer sagt Danke an snb für diesen Beitrag 28
• Reismann
Registriert seit: 17.12.2015
Version(en): Office365
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.
Registriert seit: 29.09.2015
Version(en): 2030,5
21.01.2016, 22:15
(Dieser Beitrag wurde zuletzt bearbeitet: 21.01.2016, 22:15 von snb.)
Es gibt viele verschiedene 'dropdownelemente'
z.B.
Code:
sheet1.combobox1.list=sn
Code:
Private Sub Userform_initialize()
combobox1.list=sn
End Sub
usw.
Registriert seit: 17.12.2015
Version(en): Office365
Jetzt stehe ich ein wenig auf dem Schlauch.
Wenn ich unter Entwicklertools eine ComboBox auf mein Arbeitsblatt zeichne.... Wo und wie muss ich dann den von dir geposteten Code einfügen?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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-ExcelSuche 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)