Suche ein Macro das prüft ob ein Ordner z.B. LW C Ordner ftpxls vorhanden ist bzw. wenn nein das dieser angelegt wird.
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal Pfad As String) As Long
Sub Pfad_anlegen()
MakeSureDirectoryPathExists "C:\test\1\2\3\4\5"
End Sub
Damit werden b.B. auch tiefere Ebenen angelegt.Um in Excel VBA zu prüfen, ob ein Ordner vorhanden ist, und ihn gegebenenfalls zu erstellen, kannst du folgende Schritte befolgen:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“ klickst und „Einfügen“ > „Modul“ wählst.
Kopiere den folgenden Code in das Modul:
Sub OrdnerPruefenUndAnlegen()
Dim OrdnerPfad As String
OrdnerPfad = "C:\Test" ' Pfad des zu prüfenden Ordners
If Dir(OrdnerPfad, vbDirectory) = "" Then
MkDir OrdnerPfad
MsgBox "Ordner wurde angelegt: " & OrdnerPfad
Else
MsgBox "Ordner existiert bereits: " & OrdnerPfad
End If
End Sub
Passe den OrdnerPfad
an, je nachdem, wo du den Ordner anlegen möchtest.
Führe das Makro aus, indem du F5
drückst oder das Makro über das Menü „Ausführen“ startest.
Fehler: „Zugriff verweigert“
Fehler: „Ordner bereits vorhanden“
Fehler: „Pfad nicht gefunden“
Eine alternative Methode zur Überprüfung und Erstellung von Ordnern ist die Verwendung einer Windows-DLL. Du kannst den folgenden Code verwenden, um tiefere Verzeichnisebenen anzulegen:
Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal Pfad As String) As Long
Sub PfadAnlegen()
MakeSureDirectoryPathExists "C:\test\1\2\3\4\5"
End Sub
Diese Methode eignet sich besonders, wenn du mehrere Ebenen in einem Schritt anlegen möchtest.
Hier sind ein paar Beispiele, wie du den Code anpassen kannst:
Ordner auf einem anderen Laufwerk erstellen:
OrdnerPfad = "D:\MeineDaten\NeuerOrdner"
Ein Unterverzeichnis erstellen:
OrdnerPfad = "C:\Test\Unterordner"
Dynamischen Ordnernamen verwenden:
Dim OrdnerName As String
OrdnerName = "Ordner_" & Format(Date, "YYYYMMDD") ' Beispiel für einen datumsbasierten Ordnernamen
OrdnerPfad = "C:\Test\" & OrdnerName
On Error Resume Next
, um Fehler zu ignorieren, und On Error GoTo 0
, um die Fehlerbehandlung wieder zu aktivieren.MsgBox
-Nachrichten an, um den Nutzern mehr Informationen zu geben.1. Wie kann ich den Ordnerpfad dynamisch gestalten? Du kannst den Ordnerpfad mit Variablen kombinieren, um ihn basierend auf Benutzerangaben oder anderen Kriterien zu erstellen.
2. Funktioniert dieser Code in Excel 365? Ja, der Code ist mit Excel 365 sowie früheren Versionen kompatibel, solange du den VBA-Editor verwenden kannst.
3. Was ist, wenn ich mehrere Ordner gleichzeitig erstellen möchte? Du kannst eine Schleife einsetzen, um mehrere Ordner mit ähnlichen Namen zu erstellen, indem du den Namen während der Iteration anpasst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen