Ordner durch Excel erstellen?

Hi!

Ich habe in Excel eine Ordnerübersicht erstellt, die 2500 Zeilen umfasst. In den Spalten sind die Ebenen verzeichnet, Spalte 1 ist also das Hauptverzeichnis, Ebene 2 das erste Unterverzeichnis, usw. Insgesamt gibt es 6 Ebenen.

Gibt es nun eine Möglichkeit, die ganzen in Excel beschriebenen Ordner durch Excel erstellen zu lassen??

[URL entfernt]

Danke im Voraus für Hilfe!

Gruß

ja…

im Prinzip solltest Du den kompletten Pfad in einer einzelnen Spalte kombinieren, das spart VBA-Code.
Also einfach in der 7. Spalte eine verschachtelte Formel basteln, die dann
d:\ordner\unterordner1\unterordner2\
ausgibt usw.

Dann gehst Du mit vba ran
ein loop von G1 bis G2500 (Deine Inhalte eben) in denen Du die Werte ausliest und die Ordner erstellst…
mkdir
erzeugt Dir dann dieses Verzeichnis im loop.
Sieht also in etwa so aus:

Sub ordnererstellen()
 For i = 1 To 2500
 ordnername = Range("G1").Offset(i - 1, 0).Value
 MkDir ordnername
 Next i
End Sub

Hallo, Gerrit!

Gibt es nun eine Möglichkeit, die ganzen in Excel
beschriebenen Ordner durch Excel erstellen zu lassen??

Ja. Wie fit bist Du in VBA? Mir gefällt die Struktur nicht, ich würde in zwei Schritten vorgehen:

  1. Die gesamte Tabelle durchlaufen und fehlende Werte in führenden Spalten nach unten auffüllen.

  2. Dann über die ganze Tabelle laufen, den Pfadnamen als Verkettung aller vorhandenen Spalten zusammenbasteln und per API-Aufruf Public Declare Function MakePath Lib „imagehlp.dll“ Alias „MakeSureDirectoryPathExists“ (ByVal lpPath As String) As Long
    erzeugen lassen. Der API-Aufruf erzeugt nämlich gleich mehrere Verzeichnisebenen auf einen Rutsch; das VBA-MkDir immer nur eins.

Falls Dir das nicht langt, melde Dich noch mal, und irgend jemand oder auch ich kann in einer freien Minute den Code genauer ausarbeiten.

Gruß, Manfred

Hallo, Munich, Du Nase:wink:!

Hättest Du das nicht ein wenig eher posten können? Hätte ich mir meine Antwort sparen können. Dabei habe ich vorm Schreiben (und dann zwischendrin telefonieren) extra noch mal aktualisiert und geschaut, ob 'ne Antwort da ist oder nicht…

So long, Gruß, Manfred

tut mir schrecklich leid
bitte verzeih mir, Du Ohr :wink:

Hey ihr zwei!

Vielen Dank für die schnelle Hilfe! In VBA bin ich leider nicht so wirklich fit, werde aber die Anweisungen mal ausprobieren. Allerdings habe ich selber Vorgaben, so dass ich die Strukturdarstellung in Excel nicht abändern kann… Der Pfad, auf dem gespeichert werden soll, ist erstmal egal, Hauptverzeichnis der Festplatte oder so - kann ja später noch verschoben werden. Kann ich mich bei weiterer Hilfe vielleicht noch mal an euch wenden?

Vielen Dank und Gruß

Hallo, Gerrit!

Kann ich mich bei weiterer Hilfe vielleicht
noch mal an euch wenden?

Nö:wink:

Mal so basierend auf Deiner Datei (wie gesagt: Root anpassen entweder im Code oder später verschieben):

Sub PfadeErstellen()
 Dim lngZeile As Long
 Dim lngSpalte As Long
 Dim lngHlp As Long
 Dim strPfad As String
 Dim astrPfad(6) As String
 Dim lngDummy As Long

 On Error Resume Next ' egal; in Deinem Beispiel erzeugst
 ' Du den letzten Pfad doppelt...

 lngZeile = 3 ' erste Zeile mit Daten
 astrPfad(0) = "C:" ' Root ohne \ am Ende
 With Tabelle1
 Do While .Cells(lngZeile, 1) & .Cells(lngZeile, 2) & .Cells(lngZeile, 3) \_
 & .Cells(lngZeile, 4) & .Cells(lngZeile, 5) & .Cells(lngZeile, 6) ""
 For lngSpalte = 1 To 6
 If .Cells(lngZeile, lngSpalte) "" Then
 astrPfad(lngSpalte) = .Cells(lngZeile, lngSpalte)
 ' alle folgenden Pfadbestandteile rücksetzen
 For lngHlp = lngSpalte + 1 To 6
 astrPfad(lngHlp) = ""
 Next lngHlp
 End If
 Next lngSpalte
 ' Pfad zusammenbauen
 strPfad = astrPfad(0)
 lngSpalte = 1
 Do While astrPfad(lngSpalte) ""
 strPfad = strPfad & "\" & astrPfad(lngSpalte)
 lngSpalte = lngSpalte + 1
 Loop
 ' Pfad erstellen
 MkDir strPfad
 lngZeile = lngZeile + 1
 Loop
 End With
End Sub

Wie immer nicht wirklich fehlertolerant, aber sollte für Deine Beispieldatei passen…

Gruß, Manfred