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

Forumthread: Ordner erstellen falls nicht vorhanden

Ordner erstellen falls nicht vorhanden
13.08.2015 19:04:48
SAM
Hallo,
ich möchten per VBA einen Ordner erstellen falls dieser nicht vorhanden ist.
Leider weiß ich nicht ganz genau wie.
Habe diese Variante versucht, aber ich bekomme eine Fehlermeldung. Evtl. Zugriffsfehler? Benutzerrechte?
If Dir("C:\Test\") = "" Then
MkDir ("C:\Test\")
End If
Danke im Voraus.

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner erstellen falls nicht vorhanden
13.08.2015 19:09:57
Nepumuk
Hallo,
du hast vergessen auf Ordner zu testen:
If Dir$("C:\Test\", vbDirectory) = "" Then MkDir "C:\Test\"

Gruß
Nepumuk

Anzeige
AW: Ordner erstellen falls nicht vorhanden
13.08.2015 19:14:29
SAM
DANKE
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Ordner erstellen in Excel VBA, falls nicht vorhanden


Schritt-für-Schritt-Anleitung

Um einen Ordner in Excel VBA zu erstellen, falls dieser nicht vorhanden ist, kannst Du den folgenden Code verwenden:

Sub OrdnerErstellen()
    Dim OrdnerPfad As String
    OrdnerPfad = "C:\Test\"

    If Dir(OrdnerPfad, vbDirectory) = "" Then
        MkDir OrdnerPfad
    End If
End Sub

In diesem Beispiel prüft der Code, ob der Ordner "C:\Test\" vorhanden ist. Falls nicht, wird er angelegt. Achte darauf, dass Du die erforderlichen Benutzerrechte hast, um einen Ordner im angegebenen Pfad zu erstellen.


Häufige Fehler und Lösungen

  1. Zugriffsfehler

    • Wenn Du eine Fehlermeldung erhältst, könnte das an fehlenden Benutzerrechten liegen. Stelle sicher, dass Du Schreibrechte für den Zielordner hast.
  2. Ordner existiert bereits

    • Wenn der Ordner bereits vorhanden ist, wird der Code einfach übersprungen. Achte darauf, dass Du den richtigen Pfad angibst.
  3. Falscher Pfad

    • Stelle sicher, dass der angegebene Pfad korrekt und gültig ist. Ein Tippfehler kann dazu führen, dass der Code nicht funktioniert.

Alternative Methoden

Du kannst auch eine Funktion verwenden, um die Prüfung und Erstellung des Ordners zu kapseln. Hier ist ein Beispiel:

Function OrdnerPruefenUndErstellen(ByVal Pfad As String)
    If Dir(Pfad, vbDirectory) = "" Then
        MkDir Pfad
    End If
End Function

Diese Funktion kann dann überall im Code aufgerufen werden, um einen Ordner zu erstellen, falls er nicht vorhanden ist.


Praktische Beispiele

Wenn Du mehrere Ordner oder Unterordner erstellen möchtest, kannst Du das wie folgt umsetzen:

Sub UnterordnerErstellen()
    Dim HauptOrdner As String
    HauptOrdner = "C:\Test\"

    ' Hauptordner erstellen, falls nicht vorhanden
    If Dir(HauptOrdner, vbDirectory) = "" Then
        MkDir HauptOrdner
    End If

    ' Unterordner erstellen
    Dim UnterOrdner As String
    UnterOrdner = HauptOrdner & "Unterordner\"

    If Dir(UnterOrdner, vbDirectory) = "" Then
        MkDir UnterOrdner
    End If
End Sub

In diesem Beispiel wird zuerst der Hauptordner erstellt, falls er nicht vorhanden ist, und danach ein Unterordner.


Tipps für Profis

  • Nutze die On Error Resume Next Anweisung, um Fehler zu ignorieren, wenn der Ordner bereits existiert:

    On Error Resume Next
    MkDir "C:\Test\"
    On Error GoTo 0
  • Verwende FileSystemObject, um mehr Kontrolle über Dateisystemoperationen zu haben. Das Beispiel dazu sieht so aus:

Sub FSOOrdnerErstellen()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    If Not fso.FolderExists("C:\Test\") Then
        fso.CreateFolder "C:\Test\"
    End If
End Sub

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob ein Ordner existiert? Du kannst die Dir-Funktion verwenden, um zu überprüfen, ob ein Ordner vorhanden ist. Wenn Dir("Pfad", vbDirectory) einen leeren String zurückgibt, existiert der Ordner nicht.

2. Was passiert, wenn der Ordner schon existeirt? Der Code überspringt die MkDir-Anweisung, wenn der Ordner bereits vorhanden ist. Es wird keine Fehlermeldung angezeigt, solange Du die Dir-Funktion ordnungsgemäß verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige