Microsoft Excel

Herbers Excel/VBA-Archiv

Feststellen ob ein Unterverzeichnis existiert

    Betrifft: Feststellen ob ein Unterverzeichnis existiert von: Hans-Werner Schmidt
    Geschrieben am: 02.10.2003 22:18:21

    Hallo
    Für eine Abrechnung speichere ich jeden Tag Dateien per Makro in ein Verzeichnis.Die Werte Jahr (2003),Monat(10),Tag(01) sind über ein Drehfeld vorgegeben z.B.
    C:/Abrechnung/2003/10/01.xls
    C:/Abrechnung/2003/10/02.xls
    Frage: Wie kann ich Abfragen ob das vorgegebene Jahr und der Monat exestiert.Wenn nicht soll das Jahr bzw. der Monat erstellt werden.
    Wer weiß Rat?
    Vielen Dank im voraus. Werner

      


    Betrifft: AW: Feststellen ob ein Unterverzeichnis existiert von: Franz W.
    Geschrieben am: 02.10.2003 23:11:44

    Hallo Werner,

    mal fürs Jahr, entsprechend dann für den Monat:

    Sub Neue_Datei()
    Dim jZahl as Integer
    jZahl = Year(Date)
    '''  Neue Datei speichern
     ''  Prüfen ob Ordner C:\Abrechnung\jZahl\ existiert
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Ordnername = "C:\Abrechnung\" & jZahl & "\"
        If Not Fso.FolderExists(Ordnername) Then
      ' Ordner  ...\jZahl\  erstellen
            MkDir "C:\Abrechnung\" & jZahl & "\"
        End If
     ''  Speichern im Ordner C:\Abrechnung\jZahl\
        ActiveWorkbook.SaveAs "C:\Abrechnung\" & jZahl & "\Dein_Dateiname" & ".xls"
    End Sub
    


    Grüße
    Franz


      


    Betrifft: Komplett und fehlerbereinigt von: Franz W.
    Geschrieben am: 02.10.2003 23:25:44

    Hallo Werner,

    war zu schnell vorhin, aber so klappt er - getestet:

    Option Explicit

    Sub Neue_Datei()
    Dim jZahl As Integer, mZahl As Byte, tZahl As Byte
    Dim Fso, Ordnername
    jZahl = Year(Date)
    mZahl = Month(Date)
    tZahl = Day(Date)
    '''  Neue Datei speichern
     ''  Prüfen ob Ordner C:\Abrechnung\jZahl\ existiert:
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Ordnername = "C:\Abrechnung\" & jZahl & "\"
        If Not Fso.FolderExists(Ordnername) Then
      ' Ordner  C:\Abrechnung\jZahl\  erstellen:
            MkDir "C:\Abrechnung\" & jZahl & "\"
        End If
      
     ''  Prüfen ob Ordner C:\Abrechnung\jZahl\mZahl existiert:
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Ordnername = "C:\Abrechnung\" & jZahl & "\" & mZahl & "\"
        If Not Fso.FolderExists(Ordnername) Then
      ' Ordner  C:\Abrechnung\jZahl\mZahl  erstellen:
            MkDir "C:\Abrechnung\" & jZahl & "\" & mZahl & "\"
        End If
     
     ''  Speichern im Ordner C:\Abrechnung\jZahl\
        ActiveWorkbook.SaveAs "C:\Abrechnung\" & jZahl & "\" & mZahl & "\" & tZahl & ".xls"
    End Sub
    


    Grüße
    Franz


      


    Betrifft: Alternative von: Franz W.
    Geschrieben am: 02.10.2003 23:45:18

    Hallo Werner,

    hab grad noch mal gesehen, dass Du Jahr, Monat und Tag über ein Drehfeld in eine Zelle schreibst. Dann kannst Du Dir auch diese eingestellten Werte holen. Als Beispiel:
    Jahr steht in A1
    Monat steht in B1
    Tag steht in C1

    dann schreibst Du:

    Sub Neue_Datei()
    Dim jZahl As Integer, mZahl As Byte, tZahl As Byte
    Dim Fso, Ordnername
    jZahl = [A1]
    mZahl = [B1]
    tZahl = [C1]
    '''  Neue Datei speichern
     ''  Prüfen ob Ordner C:\Abrechnung\jZahl\ existiert:
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Ordnername = "C:\Abrechnung\" & jZahl & "\"
        If Not Fso.FolderExists(Ordnername) Then
      ' Ordner  C:\Abrechnung\jZahl\  erstellen:
            MkDir "C:\Abrechnung\" & jZahl & "\"
        End If
      
     ''  Prüfen ob Ordner C:\Abrechnung\jZahl\mZahl existiert:
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Ordnername = "C:\Abrechnung\" & jZahl & "\" & mZahl & "\"
        If Not Fso.FolderExists(Ordnername) Then
      ' Ordner  C:\Abrechnung\jZahl\mZahl  erstellen:
            MkDir "C:\Abrechnung\" & jZahl & "\" & mZahl & "\"
        End If
     
     ''  Speichern im Ordner C:\Abrechnung\jZahl\
        ActiveWorkbook.SaveAs "C:\Abrechnung\" & jZahl & "\" & mZahl & "\" & tZahl & ".xls"
    End Sub
    



      


    Betrifft: AW: Alternative von: Hans-Werner Schmidt
    Geschrieben am: 03.10.2003 15:04:25

    Franz du hast mein Problem erkannt und gelöst ich probiere es umgehend aus.
    Hochachtung für so viel Können.
    Danke


      


    Betrifft: Vielen Dank für die Blumen, aber... von: Franz W.
    Geschrieben am: 03.10.2003 16:48:39

    Hallo Werner,

    vielen Dank für die Rückmeldung. Die Blumen aber geb ich gerne an meine Helfre weiter. In dem Code ist nicht alles von mir, das ist viel Hilfe aus dem Forum (in diesem speziellen Fall von Hajo) drin. Hab's dann nur noch entsprechend zusammengestellt ;-)). Freut mich aber, wenn ich Dir damit helfen konnte.

    Grüße
    Franz


      


    Betrifft: AW: Feststellen ob ein Unterverzeichnis existiert von: PeterW
    Geschrieben am: 02.10.2003 23:19:17

    Hallo Hans-Werner,

    schau mal links unter Excel-FAQ - Datei - Name - Prüfen ob Name exisitiert.

    Gruß
    Peter


      


    Betrifft: AW: Feststellen ob ein Unterverzeichnis existiert von: Hans-Werner Schmidt
    Geschrieben am: 03.10.2003 15:10:33

    Hallo Peter
    das mit der Datei war klar, das habe ich mir auch schon von der Herber-CD geholt.
    Wichtig war mir das der Ordner in den abgespeichert wird auch vorhanden ist.Bislang habe ich die Unterordner für das ganze Jahr angelegt.
    Vielen Dank trotzdem
    Werner


      


    Betrifft: AW: Feststellen ob ein Unterverzeichnis existiert von: K.Rola
    Geschrieben am: 02.10.2003 23:50:46

    Hallo,

    Option Explicit
    Declare
    Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
    
    Sub Pfad_existiert()
    MakeSureDirectoryPathExists "c:\Abrechnung\spinbuttonJahr\SpinbuttonMonat\"
    ''Dein Speicherncode
    End Sub
    


    Gruß K.Rola


     

    Beiträge aus den Excel-Beispielen zum Thema " Feststellen ob ein Unterverzeichnis existiert"