Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ordner mit Unterordner aus Excel erzeug

Ordner mit Unterordner aus Excel erzeug
13.11.2020 08:06:20
Gerald
Ich möchte mit Hilfe Excel Ordner und Unterordner anlegen, dabei solle kontrolliert werde ob die Ordner schon vorhanden sind, wenn nicht sollen die Ordner und Unterordner angelegt werden?
Hierzu habe ich eine in meiner Excelliste folgende Spalten definiert:
in Spalte A der Pfad wo die Ordner im Explorer geprüft und angelegt werden sollten;
in Spalte B der Name des Hauptordner;
ab Spalte C, in jeder weiteren Spalte die Namen der Unterordner;
Ich bräuchte hierzu Eure Hilfe, da meine VBA Kenntnisse sehr beschränkt sind :(
mit folgenden gefundenen Makro habe ich es versucht
Option Explicit
' anpassen !!!MIT abschließendem Backslash "\"
Const strPfad1 As String = "H:\Wariwoda_Richter\"
Private Declare PtrSafe Function MakeSureDirectoryPathExists _
Lib "imagehlp.dll" (ByVal Pfad As String) As Long
Private Declare PtrSafe Function DeleteUrlCacheEntry Lib "wininet" Alias _
"DeleteUrlCacheEntryA" (ByVal lpszUrlName As String) As Long
Private Declare PtrSafe Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" ( _
ByVal pCaller As LongPtr, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As LongPtr) As Long

Public Sub Ordner_anlegen()
Dim wksSheet As Worksheet
Dim lngLastRow As Long
On Error GoTo Fin
Set wksSheet = ThisWorkbook.Worksheets("Ordner")   'anpassen!
With wksSheet
lngLastRow = .Range("A" & .Rows.Count).End(xlUp).Row ' Spalte A
For lngLastRow = 1 To lngLastRow ' ab Zeile 1 also eventuell anpassen
If Trim(.Cells(lngLastRow, 1).Value)  "" Then
MakeSureDirectoryPathExists (strPfad1 & .Cells(lngLastRow, 1).Value & "\" &  _
Range("C1") & "\")
MakeSureDirectoryPathExists (strPfad1 & .Cells(lngLastRow, 1).Value & "\" &  _
Range("D1") & "\")
MakeSureDirectoryPathExists (strPfad1 & .Cells(lngLastRow, 1).Value & "\" &  _
Range("E1") & "\")
End If
Next lngLastRow
End With
Fin:
Set wksSheet = Nothing
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 09:38:47
Nepumuk
Hallo Gerald,
in welcher Zeile beginnen die Daten?
Gruß
Nepumuk
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 13:21:41
Gerald
In der ersten Zeile beginnen die Daten,
lg Gerald
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 14:02:22
Nepumuk
Hallo Gerald,
Wenn deine Daten so aussehen:
 ABCD
1H:   
2H:testtesttest

Dann so:
Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists _
    Lib "imagehlp.dll" (ByVal Pfad As String) As Long

Public Sub CreateFolders()
    Dim lngRow As Long
    For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        If IsArray(Range(Cells(lngRow, 1), Cells(lngRow, Columns.Count).End(xlToLeft)).Value) Then _
            Call MakeSureDirectoryPathExists(Join(Application.Transpose(Application.Transpose( _
            Range(Cells(lngRow, 1), Cells(lngRow, Columns.Count).End(xlToLeft)).Value)), "\") & "\")
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 14:14:38
Gerald
Hab jetzt eine Musterliste hier eingefügt.
Grundsätzlich soll geprüft werden ob der Hauptordner vorhanden ist, wenn nein, dann muss er angelegt werden. Die Unterordner sind alle in der selben Ebene und sollen im Hauptordner, wenn sie nicht schon vorhanden sind, angelegt werden!
Danke vielmals, lg gerald
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 14:17:41
Nepumuk
Hallo Gerald,
das macht die Funktion "MakeSureDirectoryPathExists" automatisch. Existiert der Ordner passiert nichts, existiert er nicht wird er angelegt.
Gruß
Nepumuk
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 15:06:01
max.kaffl@gmx.de
Hallo Gerald,
teste mal:
Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists _
    Lib "imagehlp.dll" (ByVal Pfad As String) As Long

Public Sub CreateFolders()
    Dim lngRow As Long
    For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        If IsArray(Range(Cells(lngRow, 1), Cells(lngRow, Columns.Count).End(xlToLeft)).Value) Then _
            Call MakeSureDirectoryPathExists(Cells(lngRow, 1).Text & Join(Application.Transpose(Application.Transpose( _
            Range(Cells(lngRow, 2), Cells(lngRow, Columns.Count).End(xlToLeft)).Value)), "\") & "\")
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 15:07:53
Nepumuk
Hallo Gerald,
so natürlich:
Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists _
    Lib "imagehlp.dll" (ByVal Pfad As String) As Long

Public Sub CreateFolders()
    Dim lngRow As Long
    For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If IsArray(Range(Cells(lngRow, 1), Cells(lngRow, Columns.Count).End(xlToLeft)).Value) Then _
            Call MakeSureDirectoryPathExists(Cells(lngRow, 1).Text & Join(Application.Transpose(Application.Transpose( _
            Range(Cells(lngRow, 2), Cells(lngRow, Columns.Count).End(xlToLeft)).Value)), "\") & "\")
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 17:35:35
Gerald
Hallo Nepumuk
leider hat sich nichts geändert, wie in meiner vorigen Nachricht, immer noch sind die Unterordner nicht auf der selben Ebene im Hauptordner?
Danke jedoch für Dein bemühen,
lg Gerald
AW: Ordner mit Unterordner aus Excel erzeug
13.11.2020 15:16:18
Gerald
Hallo Nep..
hat fürs erste mal ganz gut funktioniert, jedoch ist der 2.Unterordner im 1.Unterordner und der 3.Unterordner im 2.Unterordner.
Alle Unterordner sollten jedoch zugleich im Hauptordner platziert sein, in der gleichen Ebene!
Hoffe das kannst Du lösen, danke Dir schon mal
lg gerald

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige