Excel vba: Before Save

Hallo Experten,
letzte Woche wurde mir geholfen mit der BeforeSave Funktion.

unter XL2003 gibt es für die Arbeitsmappe das Event "BeforeSave".
Dort schreibst du dann den Code für das Speichern rein.

Ich wollte eine Arbeitsmappe 2x an verschieden Orten abspeichern. und so ein Backup erzeugen.
das funktioniert fast.
Wenn ich die Arbeitmappe abspeichere mit der beforeSave funktion merkt sich Excel natürlich Name und Pfad.
Meine Lösung: in der before save 2x abspeichern, das ist aber sehr unelegant. (ich würde dann 3x abspeichern)
Kann ich den Path setzten?
so z.b.

ThisWorkbook.Path = strPath

Das speziell funktioniert nicht !

Grüße
Winter

Ich wollte eine Arbeitsmappe 2x an verschieden Orten
abspeichern. und so ein Backup erzeugen.
das funktioniert fast.

Halllo Winter,

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ThisWorkbook.SaveCopyAs „H:“ & ThisWorkbook.Name
ThisWorkbook.SaveCopyAs „C:“ & ThisWorkbook.Name
End Sub

Gruß
Reinhard

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As Boolean)
ThisWorkbook.SaveCopyAs „H:“ & ThisWorkbook.Name
ThisWorkbook.SaveCopyAs „C:“ & ThisWorkbook.Name
End Sub

Hallo Reinhard,
also doch 3x abspeichern. Zweimal in beforesave 1x dann in Save.

Private Sub Workbook\_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strName As String, strNewName As String
Dim Datum As Date

strName = ThisWorkbook.Name
strpath = ThisWorkbook.Path

Datum = Date

strNewName = "D:\Backup\" & Datum & ".xls"

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

 Workbooks(strName).SaveAs Filename:=strNewName, FileFormat:= \_
 xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False \_
 , CreateBackup:=False

strName = strpath & "\" & strName
Workbooks(ThisWorkbook.Name).SaveAs Filename:=strName, FileFormat:= \_
 xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False \_
 , CreateBackup:=False


Application.DisplayAlerts = True 'Nachfrage soll überschrieben werden wieder AN



End Sub

Schade dachte es gibt was eleganteres ;-(

Grüße
Winter

also doch 3x abspeichern. Zweimal in beforesave 1x dann in
Save.

Hallo Winter,

ich kann doch nicht bis drei zählen :smile:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim strNewName As String
strNewName = „D:\Backup“ & Date & „.xls“
Application.DisplayAlerts = False 'Nachfrage soll überschrieben werden AUS
ThisWorkbook.SaveCopyAs Filename:=strNewName, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Application.DisplayAlerts = True 'Nachfrage soll überschrieben werden wieder AN
End Sub

Gruß
Reinhard

ThisWorkbook.SaveCopyAs

Gruß
Reinhard

SUUUPER
Danke

3-2-1- Danke (also doch drei :wink: )