Datein überprüfen und speichern

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Datein überprüfen und speichern
von: Manuel
Geschrieben am: 21.09.2015 06:52:35

Hallo liebe VBA-Profis,
ich bräuchte mal bitte wieder eure Hilfe. Und zwar geht es um folgendes:
Ich habe einen Code geschrieben, der in einem bestimmten Ordner auslesen soll, ob die Datei vorhanden ist oder nicht. Wenn die Datei (Beispiel: test_v1.xlsx) vorhanden ist, dann soll er die Arbeitsmappe als v2 (Beispiel: test_v2.xlsx) abspeichern.
Aktuell habe ich den Code mit >msgboxes< simuliert. Die Speicherung baue später ein, das kann ich dann selbst ;-)
Der Code, den ich gebastelt habe funktioniert auch, aber irgendwie ist das eine unsaubere Lö _ sung und ich muss alle Versionen manuell überprüfen:


Sub test ()
pfad = "C:\Users\Manuel\Desktop\testordner\"
a = "testordneranlegen"
b = "test"
bz = ".xlsx"
c = "_v1"
d = "_v2"
e = "_v3"
If Dir(pfad & a & "\" & b & c & bz) <> "" Then
MsgBox "v1 vorhanden"
    If Dir(pfad & a & "\" & b & d & bz) <> "" Then
    MsgBox "v2 vorhanden"
        If Dir(pfad & a & "\" & b & e & bz) <> "" Then
        MsgBox "v3 vorhanden"
        Else
        MsgBox "v3 wird angelegt"
        End If
    Else
    MsgBox "v2 wird angelegt"
    End If
Else
MsgBox "v1 wird angelegt"
End If
End Sub
Wäre spitze wenn ihr mir helfen könnt :-)
Kurz zusammengefasst: Der Code soll überprüfen, ob die Datei test_vX.xlsx schon vorhanden ist. Wenn die Datei test_vX.xlsx schon vorhanden ist, dann soll die neue Datei als test_vX+1.xlsx gespeichert werden (in dieser Beispieldatei aber nur als MsgBox ausgegeben).
LG Manuel!

Bild

Betrifft: AW: Datein überprüfen und speichern
von: EtoPHG
Geschrieben am: 21.09.2015 09:07:22
Hallo Manuel,
probier mal:

Sub test()
    Const sHauptPfad As String = "C:\Users\Manuel\Desktop\testordner\"
    Const sSubPfad As String = "testordneranlegen\"
    Const sFileName As String = "test_v"
    Const sFileExt As String = ".xlsx"
    Dim sFile As String
    Dim lVersion As Long
    
    sFile = Dir(sHauptPfad & sSubPfad & sFileName & "*" & sFileExt)
    Do While sFile <> ""
        MsgBox sFile & " vorhanden"
        lVersion = CLng(Split(Mid(sFile, Len(sFileName) + 1), ".")(0)) + 1
        sFile = sFileName & lVersion & sFileExt
        MsgBox sFile & " wird angelegt"
        sFile = Dir()
    Loop
End Sub
Gruess Hansueli

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datein überprüfen und speichern"