Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1012to1016
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Beim Speichern Sicherungskopie erstellen?

Beim Speichern Sicherungskopie erstellen?
08.10.2008 10:49:00
Larsinator
Hallo zusammen,
ich möchte wenn ich eine Datei speichere gleichzeitig eine Sicherungskopie erstellen.
Dabei bin ich unterwegs bei dem Ereignis "Workbooks_BeforeSave".
Filecopy hat an der Stelle aber nicht funktioniert.
Im Moment teste ich gerade mit...

ThisWorkbook.SaveAs Filename:=FileDestination
ThisWorkbook.SaveAs Filename:=FileSource


Aber irgendwie hat es mir da gerade das Excel zerschossen. Kann es sein, dass ich da auf eine Endlosschleife stosse?
Hat da vielleicht jemand den elegantesten Weg? Ein funktionierender tuts aber auch... ;o)
Danke schon mal

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beim Speichern Sicherungskopie erstellen?
08.10.2008 11:11:36
Matthias
Hallo Lars,
versuch's mal mit .SaveCopyAs.
Kann allerdings auch Probleme verursachen, wenn du die Sicherungskopie speicherst (dann die hat ja den selben Code, also wird eine Sicherungskopie der Sicherungskopie erstellt).
Außerdem wird gleich abgespeichert, weil die "BeforeSave"-Prozedur greift, bevor z.B. eine "Überschreiben?"-Meldung kommt und man das eigentliche Speichern abbrechen kann. Die Kopie wird vorher trotzdem gespeichert.
Ich bräuchte mehr Infos (Speicherort, Möglichkeit, unter einem enderen Namen zu speichern), um dir konkret zu helfen.
Gruß Matthias
Anzeige
AW: Beim Speichern Sicherungskopie erstellen?
08.10.2008 12:49:53
Larsinator
Hallo Matthias,
gegen konkrete Hilfe will ich mich nicht wehren. ;-)) Unten meinen ganzen aktuellen Stand.
Ich hatte bis jetzt drei Ansätze ergoogelt und getestet, die ersten beiden sind auskommentiert...
Danke nochmal

Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim PathDestination As String, FileDestination As String, FileSource As String
Dim FileExist As Boolean, bln As Boolean, IsCopySaved As Boolean
FileSource = "D:\" & ActiveWorkbook.Name
PathDestination = "D:\test\"
FileDestination = PathDestination & "Kopie.xls"
If (FileDestination = "" Or FileSource = "") Then GoTo ENDE 'Datei wird trotzdem  _
gespeichert!
FileExist = Dir$(FileSource)  ""
If (FileExist = False) Then GoTo ENDE 'Datei wird trotzdem gespeichert!
FileExist = Dir$(PathDestination)  ""
If (FileExist = False) Then GoTo ENDE 'Datei wird trotzdem gespeichert!
''   Application.DisplayAlerts = False
'    If bln = False Then
'        Cancel = True
'        bln = True
'        ThisWorkbook.SaveAs Filename:=FileDestination
'        ThisWorkbook.Save
'        ThisWorkbook.Saved = True
'        bln = False
'    End If
''   Application.DisplayAlerts = True
'    FileCopy FileSource, FileDestination
ThisWorkbook.SaveAs Filename:=FileDestination
ThisWorkbook.SaveAs Filename:=FileSource
ENDE:
End Sub


Anzeige
AW: Beim Speichern Sicherungskopie erstellen?
08.10.2008 12:56:00
Matthias
Hallo Lars,
Nenne mal deine konkreten Vorstellungen, die lassen sich aus dem Code nicht ablesen ;-)
1. willst du die Sicherungskopie auch speichern, wenn man im Menü "Datei, Speichern unter..." wählt?
2. In welchen Ordner soll die Sicherungskopie gespeichert werden?
3. Wie soll der Dateiname der Kopie lauten, soll er sich aus dem ursprünglichen Dateinamen ableiten?
4. Was soll passieren, wenn die Sicherungskopie geöffnet und gespeichert wird (siehe meine erste Antwort)?
Gruß Matthias
AW: Beim Speichern Sicherungskopie erstellen?
08.10.2008 19:31:00
Larsînator
Hallo nochmal,
unten findest Du zunächst mal die konkreten Antworten auf Deine konkreten Fragen.
Prinzipiell soll folgendes passieren:
Wenn eine Datei gespeichert wird, soll eine Kopie an einem anderen Ort abgelegt werden, weil die Originaldatei nicht von jedem zugänglich ist. Die Kopie hat also nur Lesecharakter.
(im Fallbeispiel arbeite ich mit lokalen Platten, in der Praxis wird es sich aber um verschiedene Netzlaufwerke handeln, weshalb eine Verknüpfung nicht in Frage kommt)
Die Frage ist jetzt also wie ich das Save-Event in den Griff bekomme...
Vielen Dank
Larsînator
1. willst du die Sicherungskopie auch speichern, wenn man im Menü "Datei, Speichern unter..." wählt?
Das ist kein praxisrelevanter Fall (s. Beschreibung) und muss daher auch nicht berücksichtigt werden.
2. In welchen Ordner soll die Sicherungskopie gespeichert werden?
Der Pfad ist fix und im SourceCode exemplarisch belegt:
FileSource = "D:\" & ActiveWorkbook.Name
PathDestination = "D:\test\"
FileDestination = PathDestination & "Kopie.xls"

3. Wie soll der Dateiname der Kopie lauten, soll er sich aus dem ursprünglichen Dateinamen ableiten?
s.o.
4. Was soll passieren, wenn die Sicherungskopie geöffnet und gespeichert wird (siehe meine erste Antwort)?
Das stimmt, das könnte ich noch berücksichtigen, dass die Prozedur dann nicht abläuft - also abhängig von ActiveWorkbook.Name.
Anzeige
AW: Beim Speichern Sicherungskopie erstellen?
08.10.2008 11:14:00
David
Hallo Lars,
bin sicher kein VBA-Experte, aber ich vermute auch, das dies eine Endlos-Schleife auslöst, denn SaveAs ist ja wieder ein Save-Ereignis.
Vielleicht hilft es, wenn du vor dem SaveAs die
Application.EnableEvents auf False setzt
und danach wieder auf True.
Gruß
David

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige