Clever-Excel-Forum

Normale Version: Kopie von Datei beim schließen ablegen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo an Euch,

es kommt vor das eine Excel Datei in einem bestimmten Ordner immer von jemandem gelöscht wird.

Gerne würde ich das von der Datei beim schließen eine Kopie in einen Ordner mit meiner Pfadangabe abgelegt wird.Die Kopie der Datei soll genau so heißen wie das Original nur am Ende soll Kopie stehen.
Beim nächsten schließen kann die abgelegt Kopie überschreiben werden. Damit ich immer eine aktuelle Kopie habe.

Habe mit dem Makro Recorder was versucht. Aber das Ergebnis ist Mangelhaft.



Code:
Sub Makro1()
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\XXXXXX\Desktop\Backup Test\Backup\ThisWorkbook.Name", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Für Leute die auch mal so ein Problem haben hier die Lösung:

Code:
Sub Backup_Sicherung()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
ThisWorkbook.SaveCopyAs Filename:="\\XXXXXXXXX\XXXXXX\XXXX-XXXXXXXX\Backup_Dateien\" & "Kopie_" & ActiveWorkbook.name
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Hi,

ThisWorkbook.Name ist eine Eigenschaft von ThisWorkbook und möchte auch als solche behandelt werden.
Code:
ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\XXXXXX\Desktop\Backup Test\Backup\" & ThisWorkbook.Name, FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
- Wieso eigentlich einmal ActiveWorkbook und dann ThisWorkbook? Du solltest dich schon entscheiden, was du haben willst.
- Wieso verwendest du nicht die SaveCopyAs-Methode? Die ist genau für so etwas gedacht.
- Und dann solltest du vorher noch Application.DisplayAlerts auf False und danach wieder auf True setzen, damit dir Rückfrage zum Überschreiben unterbleibt.
- Ebenso würde ich keine eigene Routine verwenden, da man die händisch aufrufen muss, sondern ich würde das Workbook_BeforeSave()-Event verwenden. Das wird automatisch bei jedem Speichern aufgerufen.

Und ganz wichtig: Es ist besser dafür zu sorgen, dass keiner die Datei löscht! Dann brauchst du den ganzen Quatsch nicht. Das lässt sich ganz einfach in den Berechtigungen des Filesystems festlegen, indem du die Löschberechtigung allen (außer dir) entziehst.