jascha
Goto Top

Excel (2010) soll Backup der geöffneten Datei erstellen, bevor Änderungen nach Speicherbefehl gespeichert werden... wo ist mein Fehler?

Hallihallo,

ich bin nach längerer Suche und Rumbastelei nun soweit, dass ich mir meine Unfähigkeit eingestehen muss face-smile
Wer kann mir bei folgendem Problem helfen?

Ich möchte in einer Excel Datei (xlsm/Excel 2010) ein Makro einsetzen, welches dann aktiv wird, wenn der Benutzer die Datei abspeichern will.
Dann soll es zuvor ein Backup der Datei in einen Unterordner machen, dieser Datei einen aktuellen TimeStamp im Namen verpassen und schließlich die geänderte Datei regulär abspeichern.

Dazu habe nach Suchen im Netz und diverser unterschiedlich lautender Anleitungen diesen VB Code zusammengeschustert:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strNewName As String
strNewName = "C:\Backup\" & Format(Now, "yyyy-mm-dd hh-mm-ss") & ".xlsx"  

Application.DisplayAlerts = False 'Nachfrage soll überschrieben werden AUS  

ThisWorkbook.SaveCopyAs Filename:=strNewName, _
                        FileFormat:=xlOpenXMLWorkbook, _
                        Password:="", _  
                        WriteResPassword:="", _  
                        ReadOnlyRecommended:=False, _
                        CreateBackup:=False

Application.DisplayAlerts = True 'Nachfrage soll überschrieben werden wieder AN  
End Sub
Ich habe ihn im Excel 2010 VBA Modus als in der Arbeitsmappe als Modul angehängt. Und ich bekomme ihn einfach nicht zum Laufen.
Zur Zeit meckert Excel wegen dem "FileFormat:=" --> "Benanntes Argument nicht gefunden"

Ich blicke leider mittlerweile gar nicht mehr durch und würde mich sehr freuen, wenn mir jemand helfen könnte!

Danke!
J

Content-Key: 146064

Url: https://administrator.de/contentid/146064

Printed on: April 23, 2024 at 15:04 o'clock

Mitglied: 83928
83928 Jul 05, 2010 at 05:02:16 (UTC)
Goto Top
Hi,
probier doch mal die optionalen Parameter weg zu lassen. Hab gerade leider kein Zugriff auf eine Excel2010 Hilfe, aber vermutlich ist der Filename der einzige PArameter der nicht optional ist.
gruß aba
Member: jascha
jascha Jul 06, 2010 at 11:22:25 (UTC)
Goto Top
Hi aba,

danke für den Tipp! Jetzt bekomme ich zwar keine Fehlermeldung mehr, es wird aber trotzdem keine Kopie gespeichert. face-sad
Und ich kann das Makro irgendwie nicht manuell ausführen. Wenn ich dies in der Entwickleransicht tun möchte, öffnet sich die bekannte kleine Maske, aus der ich ein Makro auswählen kann - da ist aber keins drin?!

Grüße,
J
Mitglied: 83928
83928 Jul 06, 2010 at 11:33:07 (UTC)
Goto Top
Hi,
habs mal eben schnell für O2003 zusammengestrichen. Funktioniert bei mir so weit.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
sicherung

End Sub

Sub sicherung()
Dim strNewName As String
    strNewName = "C:\tmp\" & Format(Now, "yyyy-mm-dd hh-mm-ss") & ".xls"  
    
    Application.DisplayAlerts = False 'Nachfrage soll überschrieben werden AUS  
    
    ThisWorkbook.SaveCopyAs Filename:=strNewName
    
    
    Application.DisplayAlerts = True 'Nachfrage soll überschrieben werden wieder AN  
End Sub
Member: jascha
jascha Jul 06, 2010 at 11:47:15 (UTC)
Goto Top
Super!! Es klappt!
Was jedoch nicht funktioniert ist folgendes:

Die Originaldatei ist ein .xlsm - Ich möchte jedoch, dass Excel das Makro aus dem Backup entfernt und die Datei als .xlsx abspeichert.
Wenn ich als Zieldateiendung .xlsx angebe, speichert Excel die Datei zwar als solches ab. Öffnen lässt sie sich jedoch erst, wenn ich sie in .xlsm umbenenne...
Gibt es diese Möglichkeit?

Vielen Dank übrigens!!
J