Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ordner aus Liste erstellen

Ordner aus Liste erstellen
18.11.2013 16:00:34
Jonas
Hallo,
ich habe eine Excel-Liste mit Hilfe derer ich eine Ordnerstruktur anlegen möchte.
Eine Beispiel-Liste ist angehängt.
https://www.herber.de/bbs/user/88140.xlsx
Durch klicken auf einen Button soll dann zunächst ein SaveAs-Dialog geöffnet werden, in dem man den Speicherort auswählt.
Im ausgewählten Ordner sollen dann die Unterordner nach folgendem Muster erstellt werden.
Ordnername = "Inhalt Spalte A" + "_" + "Inhalt Spalte B".
Erschwert wird die Angelegenheit dadurch, dass nicht alle Zeilen Informationen enthalten, für die Ordner erstellt werden sollen. Wahrscheinlich reicht aber ein Filter ob in Spalte A etwas steht, oder nicht.
Ich habe leider keine Ahnung, wie ich das bewerkstelligen soll und hoffe, mir kann jemand helfen.
Vielen Dank und beste Grüße
Jonas

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner aus Liste erstellen
18.11.2013 16:14:11
Rudi
Hallo,
Sub OrdnerErstellen()
Dim sFolder As String, sNeu As String, rngC As Range
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
sFolder = .SelectedItems(1)
End If
End With
If sFolder  "" Then
With Sheets(1)
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
If rngC  "" Then
sNeu = sFolder & "\" & rngC & "_" & rngC.Offset(, 1)
If Dir(sNeu) = "" Then
MkDir sNeu
End If
End If
Next
End With
End If
End Sub

Gruß
Rudi

Anzeige
AW: Ordner aus Liste erstellen
19.11.2013 08:13:52
Jonas
Hallo Rudi,
vielen Dank.
Funktioniert wunderbar, ich hab nur ein kleines Problem.
Wenn ich das Makro ein zweites Mal ausführe, dann meldet sich der Debugger.
Wie baue ich eine Abfrage in das Makro, ob der anzulegende Ordner schon existiert.
Am besten sollte es so sein, dass ein schon existierender Ordner einfach ausgelassen wird und dafür am Ende des Makros eine Mitteilung erscheint, dass nicht alle Ordner angelegt werden konnten, da es Überschneidung mit bereits existierenden Ordnern gab.
Vielen Dank und beste Grüße
Jonas

Anzeige
AW: Ordner aus Liste erstellen
19.11.2013 11:39:08
Jonas
Keiner eine Idee zu meiner weiteren Problematik?
Sobald ein Ordner schon existiert, stürzt das Makro ab.
Vielen Dank und Grüße
Jonas

AW: Ordner aus Liste erstellen
19.11.2013 12:03:17
Rudi
Hallo,
Sub OrdnerErstellen()
Dim sFolder As String, sNeu As String, rngC As Range, n As Integer
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
sFolder = .SelectedItems(1)
End If
End With
If sFolder  "" Then
With Sheets(1)
For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
If rngC  "" Then
sNeu = sFolder & "\" & rngC & "_" & rngC.Offset(, 1)
If Dir(sNeu, vbDirectory) = "" Then
MkDir sNeu
Else
n = n + 1
End If
End If
Next
End With
End If
If n Then MsgBox n & " Ordner nicht angelegt.", vbInformation, "Info"
End Sub

Gruß
Rudi

Anzeige
AW: Ordner aus Liste erstellen
19.11.2013 12:57:37
Jonas
Hallo Rudi,
vielen Dank, das funktioniert traumhaft.
Lediglich einen Absturz hatte ich. Dieser wurde mit Run-Time Error '76' quittiert und ich habe den Fehler auf eine nicht zugelassene Bennenung zurückführen können.
In der Liste stand ein "/", was nicht in einem Ordnernamen zugelassen ist.
Somit kein Fehler deines tollen Makros.
Gruß
Jonas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ordner aus Excel-Liste erstellen


Schritt-für-Schritt-Anleitung

Um automatisch Ordner aus einer Excel-Liste zu erstellen, kannst du das folgende VBA-Makro verwenden. Dieses Makro öffnet einen Dialog, in dem du den Speicherort für die Ordner auswählen kannst. Die Ordner werden dann basierend auf den Inhalten von Spalte A und B erstellt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle im Menü Einfügen -> Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Sub OrdnerErstellen()
        Dim sFolder As String, sNeu As String, rngC As Range, n As Integer
    
        With Application.FileDialog(msoFileDialogFolderPicker)
            If .Show = -1 Then
                sFolder = .SelectedItems(1)
            End If
        End With
    
        If sFolder <> "" Then
            With Sheets(1)
                For Each rngC In .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
                    If rngC <> "" Then
                        sNeu = sFolder & "\" & rngC & "_" & rngC.Offset(, 1)
                        If Dir(sNeu, vbDirectory) = "" Then
                            MkDir sNeu
                        Else
                            n = n + 1
                        End If
                    End If
                Next
            End With
        End If
    
        If n Then MsgBox n & " Ordner nicht angelegt.", vbInformation, "Info"
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle OrdnerErstellen aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Problem: Das Makro stürzt ab, wenn ein Ordner bereits existiert.

    • Lösung: Das oben genannte Makro enthält bereits eine Abfrage, die überprüft, ob der Ordner existiert. Wenn ja, wird er übersprungen und eine Mitteilung am Ende angezeigt.
  • Problem: Run-Time Error '76'.

    • Lösung: Dieser Fehler tritt auf, wenn ungültige Zeichen in den Ordnernamen enthalten sind (z.B. /). Überprüfe die Daten in deiner Excel-Liste und entferne solche Zeichen.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du auch manuell Ordner erstellen:

  1. Kopiere die Namen aus deiner Excel-Liste.
  2. Öffne den Windows-Explorer und navigiere zum gewünschten Speicherort.
  3. Füge die Namen in den Explorer ein, indem du mit der rechten Maustaste klickst und "Neuer Ordner" auswählst.
  4. Benenne die Ordner manuell oder mit einem Skript.

Praktische Beispiele

  • Beispiel 1: Du hast eine Excel-Liste mit den folgenden Einträgen:

    Spalte A Spalte B
    Projekt1 Unterordner1
    Projekt2 Unterordner2

    Das Makro erstellt dann die Ordner:

    Projekt1_Unterordner1
    Projekt2_Unterordner2
  • Beispiel 2: Wenn einige Zeilen in der Liste leer sind, überspringt das Makro diese automatisch.


Tipps für Profis

  • Achte darauf, dass deine Excel-Liste sauber ist, um Fehler beim Erstellen der Ordner zu vermeiden. Überprüfe auf Leerzeichen und ungültige Zeichen.
  • Nutze die Funktionalität von Excel, um eine Namensliste zu erstellen, die du dann für die Ordnerstruktur verwenden kannst.
  • Experimentiere mit weiteren VBA-Funktionen, um dein Makro zu erweitern, z.B. um eine komplette Ordnerstruktur zu erstellen oder Dateien in die neuen Ordner zu verschieben.

FAQ: Häufige Fragen

1. Frage: Kann ich das Makro anpassen, um auch Dateien zu erstellen? Antwort: Ja, du kannst das Makro erweitern, indem du in der Schleife nach dem Erstellen der Ordner auch Dateien mit Open oder CreateObject hinzufügst.

2. Frage: Welche Excel-Version benötige ich? Antwort: Das Makro sollte in Excel 2010 und höher funktionieren, da es auf die VBA-Funktionen von Excel zugreift.

3. Frage: Gibt es eine Möglichkeit, ein Inhaltsverzeichnis aus der Ordnerstruktur zu erstellen? Antwort: Ja, du kannst ein weiteres Makro schreiben, das die Ordner durchläuft und die Struktur in eine Excel-Liste exportiert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige