Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Prüfen ob Pfad existiert wenn nicht erstellen

Forumthread: Prüfen ob Pfad existiert wenn nicht erstellen

Prüfen ob Pfad existiert wenn nicht erstellen
19.06.2002 17:40:51
Steve
Hi,
Besitze folgendes Makro:

Private Sub Speichern()
Dim strDate As String
Dim strGeneralDir As String
Dim strYearDir As String
Dim strpath As String
Dim strNameDir As String
Dim strMonthDir As String

strDate = Format(Now, "mm.yy")
strYearDir = Format(Now, "yyyy")
strGeneralDir = "c:\Unternehmensplanung\Projekte"
strNameDir = "Kat.D" & " " & Workbooks("Unternehmensplanung - Einzelprojekt.xls").Worksheets("Projektdaten").cells(5, 2)
strpath = strGeneralDir & " " & strYearDir


If Not PathExists(strpath) Then MkDir (strpath)

ThisWorkbook.SaveAs (strpath & "\" & strNameDir & " " & strDate & ".xls")


MsgBox ("Arbeitsmappe wird gespeichert in:" + Chr(13) + strpath & "\" & strNameDir & ".xls")

Worksheets("Tabelle").Activate

End Sub

Private Function PathExists(strpath) As Boolean
Dim x As String
On Error Resume Next
x = GetAttr(strpath) And 0
If Err = 0 Then
PathExists = True
ElseIf PathExists = False Then
End If
End Function

Das makro soll überpüfen ob der Ordner Projekte 2002 (aktuelles Jahr) existiert wenn ja dann soll er eine Arbeitsmappe drin speichern wenn nicht dann soll er den Ordner erzeugen und dann die Arbeitsmappe drin speichern.

Das Makro funktionniert aber nicht.
Was kann ich ändern oder wie kann ich das Problem ändern.

Danke im Voraus.
Steve


Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Prüfen ob Pfad existiert wenn nicht erstellen
19.06.2002 18:31:50
Rolf, Lgh.
Hallo Steve,
schau Dir das mal an:

Gruß Rolf
Re: Danke klappt hervorragend
19.06.2002 20:13:45
Steve
Danke Rolf klapt hevorragend
Gruss
Steve

Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Prüfen und Erstellen eines Ordners in Excel VBA


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob ein Ordner existiert und diesen gegebenenfalls zu erstellen, kannst Du das folgende VBA-Makro verwenden:

Private Sub Speichern()
    Dim strDate As String
    Dim strGeneralDir As String
    Dim strYearDir As String
    Dim strpath As String
    Dim strNameDir As String

    strDate = Format(Now, "mm.yy")
    strYearDir = Format(Now, "yyyy")
    strGeneralDir = "c:\Unternehmensplanung\Projekte"
    strNameDir = "Kat.D " & Workbooks("Unternehmensplanung - Einzelprojekt.xls").Worksheets("Projektdaten").Cells(5, 2)
    strpath = strGeneralDir & " " & strYearDir

    If Not PathExists(strpath) Then MkDir (strpath)

    ThisWorkbook.SaveAs (strpath & "\" & strNameDir & " " & strDate & ".xls")

    MsgBox ("Arbeitsmappe wird gespeichert in:" & Chr(13) & strpath & "\" & strNameDir & ".xls")
    Worksheets("Tabelle").Activate
End Sub

Private Function PathExists(strpath) As Boolean
    Dim x As String
    On Error Resume Next
    x = GetAttr(strpath) And 0
    If Err = 0 Then
        PathExists = True
    Else
        PathExists = False
    End If
End Function

In diesem Beispiel wird mit der Funktion PathExists geprüft, ob der Ordner existiert. Falls nicht, wird er mit MkDir erstellt. Achte darauf, dass der Pfad korrekt eingegeben ist, um Fehler zu vermeiden.


Häufige Fehler und Lösungen

  1. Fehler: „Pfad nicht gefunden“

    • Lösung: Stelle sicher, dass der übergeordnete Ordner (c:\Unternehmensplanung) existiert. VBA kann keine Unterordner erstellen, wenn der übergeordnete Ordner nicht vorhanden ist.
  2. Fehler: „Zugriff verweigert“

    • Lösung: Überprüfe die Berechtigungen für den Ordner. Du benötigst Schreibrechte, um einen neuen Ordner zu erstellen.
  3. Fehler: „Typen unverträglich“

    • Lösung: Achte darauf, dass die Variablen korrekt deklariert sind. Der Typ von strpath sollte immer ein String sein.

Alternative Methoden

Eine alternative Methode, um einen Ordner zu erstellen, ist die Verwendung von FileSystemObject. Hier ein Beispiel:

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

If Not fso.FolderExists(strpath) Then
    fso.CreateFolder strpath
End If

Diese Methode ist besonders nützlich, wenn Du mit Pfaden und Dateien in VBA arbeitest.


Praktische Beispiele

  • Beispiel 1: Ordner für jeden Monat erstellen
strpath = strGeneralDir & "\" & strYearDir & "\" & Format(Now, "mm")
If Not PathExists(strpath) Then MkDir (strpath)
  • Beispiel 2: Dynamische Ordnernamen

Hier kannst Du den strNameDir dynamisch gestalten, z.B. basierend auf dem aktuellen Datum oder einer Benutzer-Input.


Tipps für Profis

  • Nutze On Error Resume Next nur mit Bedacht, um Fehler zu behandeln. Es ist besser, spezifische Fehler abzufangen.
  • Verwende FileSystemObject, wenn Du komplexere Dateisystemoperationen planst.
  • Teste Dein Makro in einer sicheren Umgebung, um ungewollte Änderungen an wichtigen Dateien zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob ein spezifischer Ordner existiert? Du kannst die Funktion PathExists verwenden, um zu prüfen, ob ein bestimmter Ordner vorhanden ist.

2. Was passiert, wenn der Ordner bereits existiert? In diesem Fall wird der Code MkDir nicht ausgeführt, und die Arbeitsmappe wird einfach im vorhandenen Ordner gespeichert.

3. Funktioniert dieser Code in allen Excel-Versionen? Ja, dieser VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen. Achte jedoch darauf, dass die Pfade und Dateinamen korrekt sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige