HERBERS Excel-Forum - das Archiv
Ordner aus Liste automatisch erstellen
nicospostbox

Hallo zusammen!
Ich habe eine Frage bzgl. eines Makros:
Ich möchte gerne für eine Liste (ID steht in Spalte A beginnend ab A3) per Makro automatisch einen Ordner je Listeneintrag erstellen. Der Pfad, in dem die Ordner erstellt werden sollen, steht in B2.
Die Liste kann unterschiedlich viele Einträge haben, enthält aber auf jeden Fall keine Leerzeilen.
Hat jemand eine Idee? Danke vielmals für Eure Hilfe!
Grüße,
Nico

VBA: Ordner aus Listeneinträge erstellen
NoNet

Hallo Nico,
mit diesem Makro-Code sollte das funktionieren :
Private Declare Function MakePath Lib "imagehlp.dll" _
Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
Sub Pfad_erzeugen()
Dim lngResult As Long, lngZ As Long
Dim strOrdner As String, strUnterordner As String
strOrdner = [B2].Value & "\"      'Mit "\" am Ende !!
'Oder auch :
'strOrdner = "C:\Irgend\ein\beliebiger\langer\Pfad\" 'Mit "\" am Ende !!
For lngZ = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(lngZ, 1) <> "" Then lngResult = MakePath(strOrdner)
Next
End Sub
Gruß, NoNet
WICHTIGE Code-Korrektur : Unterordner
NoNet

Sorry Nico,
habe in meinem Code oben doch glatt den Unterordner vergessen ;-).
Hier der korrigierte Code :
Private Declare Function MakePath Lib "imagehlp.dll" _
Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
Sub Pfad_erzeugen()
Dim lngResult As Long, lngZ As Long
Dim strOrdner As String
strOrdner = [B2].Value & "\"      'Mit "\" am Ende !!
'Oder auch :
'strOrdner = "C:\Irgend\ein\beliebiger\langer\Pfad\" 'Mit "\" am Ende !!
For lngZ = 3 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(lngZ, 1) <> "" Then lngResult = MakePath(strOrdner & Cells(lngZ, 1).Value)
Next
End Sub
Gruß, NoNet
AW: WICHTIGE Code-Korrektur : Unterordner
nicospostbox

Das ging ja schnell! Danke!
Aber leider funktioniert's nicht! Das Makro meldet zwar keinen Fehler, aber es werden auch keine Ordner erstellt. Kurz: es passiert nix!
Das du evtl. eine Idee?
Danke & Grüße,
Nico
Nochmal sorry : Da fehlte ein "\" am Ende
NoNet

Uuuup, Nico - das kommt davon, wenn man den Code nicht selbst vorher testet ;-)
Da fehlte tatsächlich noch ein "\" am Ende - korrigiere einfach die entscheidende Zeile :
If Cells(lngZ, 1) <> "" Then lngResult = MakePath(strOrdner & Cells(lngZ, 1).Value & "\")
Gruß, NoNet
AW: Nochmal sorry : Da fehlte ein "\" am Ende
nicospostbox

Erste Sahne!
Danke schön! :-)