Ordner über Excel VBA erstellen und verwalten
Schritt-für-Schritt-Anleitung
Um mit Excel VBA einen Ordner zu erstellen, kannst du das folgende Makro verwenden. Es prüft zuerst, ob der Ordner bereits existiert, bevor er ihn anlegt. Das Makro speichert anschließend die Datei im neu erstellten Ordner.
Sub speichern()
' speichern Makro
Dim strFilename As String
Dim strOrdner As String
Dim varOrdner As Variant
Dim i As Integer
' Ordnername aus Zelle C80
strOrdner = "C:\Test\" & ActiveSheet.Range("C80").Text
varOrdner = Split(strOrdner, "\")
' Überprüfen und Erstellen des Ordners
For i = 1 To UBound(varOrdner)
If Dir(varOrdner(i), vbDirectory) = "" Then
MkDir strOrdner
End If
strOrdner = strOrdner & Application.PathSeparator & varOrdner(i)
Next i
' Dateiname aus Zelle C77
strFilename = ActiveSheet.Range("C77").Text & ".xlsm"
' Datei speichern
ActiveWorkbook.SaveAs Filename:=strOrdner & "\" & strFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Häufige Fehler und Lösungen
-
Laufzeitfehler '75' - Fehler beim Zugriff auf Pfad/Datei
- Dieser Fehler kann auftreten, wenn der Ordner, in dem du die Datei speichern möchtest, nicht existiert oder nicht erstellt werden konnte. Stelle sicher, dass der Pfad korrekt ist und der Ordner existiert.
-
Syntaxfehler bei der Verwendung von MkDir
- Überprüfe, ob der Pfad korrekt und vollständig angegeben ist. Der Befehl sollte in der Form
MkDir("C:\Test\" & Range("C80") & "\")
geschrieben sein, ohne zusätzliche Klammern.
-
Ordner bereits vorhanden
- Wenn du versuchst, einen Ordner zu erstellen, der bereits existiert, wird ein Fehler angezeigt. Verwende die
Dir
-Funktion, um zunächst zu prüfen, ob der Ordner vorhanden ist.
Alternative Methoden
Wenn du mehrere Ordner auf einmal erstellen möchtest, kannst du die Funktion mkdir mehrere ordner anlegen
verwenden. Beispiel:
Sub mehrereOrdnerAnlegen()
Dim ordner As Variant
ordner = Array("Ordner1", "Ordner2", "Ordner3")
For Each o In ordner
On Error Resume Next ' Fehler ignorieren, wenn der Ordner bereits existiert
MkDir "C:\Test\" & o
On Error GoTo 0 ' Fehlerbehandlung zurücksetzen
Next o
End Sub
Praktische Beispiele
Hier ist ein Beispiel, wie du eine Ordnerstruktur erstellen kannst:
Sub ordnerstrukturErstellen()
Dim basisOrdner As String
Dim unterOrdner As String
basisOrdner = "C:\Test\"
unterOrdner = "Unterordner1\Unterordner2"
' Erstelle den Hauptordner
MkDir basisOrdner
' Erstelle Unterordner
MkDir basisOrdner & unterOrdner
End Sub
Tipps für Profis
- Verwende die
Application.PathSeparator
-Eigenschaft, um sicherzustellen, dass der Pfad korrekt ist, unabhängig von der Windows-Version.
- Achte darauf, dass deine Dateinamen und Ordnernamen keine unzulässigen Zeichen enthalten. Eine Funktion zur Überprüfung kannst du wie folgt implementieren:
Function fncheckFoldername(ByVal strName As String) As Boolean
Dim ungültigeZeichen As String
ungültigeZeichen = ":\/|*?"""
fncheckFoldername = Not (InStr(1, ungültigeZeichen, Mid(strName, 1, 1)) > 0)
End Function
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass ein Ordner nur einmal erstellt wird?
Um zu verhindern, dass ein Ordner mehrfach erstellt wird, kannst du die Dir
-Funktion verwenden, um die Existenz des Ordners zu überprüfen, bevor du ihn erstellst.
2. Welche Zeichen sind in Dateinamen und Ordnernamen nicht erlaubt?
In Dateinamen und Ordnernamen sind die Zeichen : / \ | * ? " < >
nicht zulässig. Stelle sicher, dass du diese Zeichen vor dem Erstellen eines Ordners prüfst.
3. Gibt es eine Tastenkombination, um einen neuen Ordner in Windows zu erstellen?
Ja, die Tastenkombination Strg + Shift + N
ermöglicht es dir, schnell einen neuen Ordner im Windows Explorer zu erstellen.