SaveAs in BeforeSave Prozedur aufrufen

Bild

Betrifft: SaveAs in BeforeSave Prozedur aufrufen
von: Patrick
Geschrieben am: 22.04.2015 13:46:53

Hallo,
ich habe ein kleines Makro geschrieben, um eine Datei mit einem Zeitstempel zu speichern und die alte Datei in einen "000Old" Ordner zu schieben. Jetzt würde ich gerne sicherstellen, dass der Nutzer auch immer damit speichert und bin gewillt das in eine workbook beforesave Prozedur zu packen.
Das Makro sieht so aus:

Sub DateiSpeichernUndVerschieben()
Dim NameAlt As String
Dim NameNeu As String
Dim Pfad As String
Dim fso As Object
Pfad = ThisWorkbook.Path & "\"
NameAlt = ThisWorkbook.Name
NameNeu = "Logbook " & Year(Date) & "-" & Format(Month(Date), "00") & "-" & Format(Day(Date), "  _
_
00") & ".xlsm"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs (Pfad & NameNeu)
Application.DisplayAlerts = True
If NameNeu = NameAlt Then
    Exit Sub
    Else
    On Error Resume Next
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.MoveFile Pfad & NameAlt, Pfad & "000Old\"
    
    'fso.CopyFile strPath_quelle & Datei.Name, strPath_Ziel & Datei.Name, True
    'fso.DeleteFile strPath_quelle & Datei.Name
    
End If
End Sub

Rufe ich jetzt call DateiVerschieben... in der workbook BeforeSave Prozedur auf entsteht eine Endlos-Schleife.
Wie kann ich das verhindern?

Bild

Betrifft: AW: SaveAs in BeforeSave Prozedur aufrufen
von: Nepumuk
Geschrieben am: 22.04.2015 14:15:57
Hallo,
indem du das Event abschaltest. Also:

Application.EnableEvents = False

Nach dem Speichern unbedingt wieder einschalten !!!
Gruß
Nepumuk

Bild

Betrifft: AW: SaveAs in BeforeSave Prozedur aufrufen
von: Patrick
Geschrieben am: 23.04.2015 09:37:46
Hallo,
ja super, genau das habe ich gebraucht.
Danke.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "SaveAs in BeforeSave Prozedur aufrufen"