Microsoft Excel

Herbers Excel/VBA-Archiv

SaveAs in BeforeSave Prozedur aufrufen

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?

  

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


  

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.


 

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