Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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

Automatische Sicherungskopie per VBA

Automatische Sicherungskopie per VBA
18.12.2014 15:32:23
Harald
Guten Tag,
kann mir jemand helfen?
Wie heißt der Code, um von einer Datei eine Sicherungskopie beim Schließen der Datei zu erstellen, welche folgende Kriterien erfüllt.
1) Der Dateiname soll grundsätzlich gleich bleiben, nur um das Wort "Sicherungskopie" (ohne Datum) ergänzt.
2) Die Sicherungskopie soll als .xlsm - Datei (Excel 2013 mit Makros) gespeichert werden.
3) Die Sicherungskopie soll automatisch in einem Unterordner "Archiv" im ursprünglichen Speicherort gespeichert werden.
Anders gesagt, die Speicherort soll automatisch erkannt werden und die Sicherungskopie dort im Unterordner "Archiv" abgelegt werden.
Die Sicherungskopie soll immer wieder durch die jeweils neue ersetzt werden. Also nicht mit Datum/Uhrzeit im Namen gespeichert werden, damit immer nur eine Sicherungskopie verwahrt wird.
Ich hoffe, dass mir jemand helfen kann und bedanke mich schon im vorraus für die freundliche Hilfe.
Viele Grüße
Harald

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Recherche:372 Erg.zu Sicherungskopie (owT)
18.12.2014 15:37:43
EtoPHG

AW: Automatische Sicherungskopie per VBA
18.12.2014 15:41:47
AndrRo
Hallo Harald,
dieser Code speichert zusätzlich eine Kopie, hier im Unterordner "Archiv"
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Pfad = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\")) & "Archiv\"
DATEI = Mid(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") + 1, Len(ThisWorkbook. _
FullName))
On Error Resume Next
SetAttr Pfad & DATEI, 0 'Schreibschutz aus
On Error GoTo 0
ThisWorkbook.SaveCopyAs Pfad & DATEI
SetAttr Pfad & DATEI, 1 'Schreibschutz ein
End Sub
gruß AndrRo

Anzeige
AW: Automatische Sicherungskopie per VBA
19.12.2014 19:28:28
Harald
Hallo EtoPHG, hallo AndrRo,
vielen Dank für eure Lösungsvorschläge.
Das Speichern einer kompletten Datei als Sicherungskopie in einem Unterordner "Archiv" des ursprünglichen Speicherortes klappt schon mal super.
Jetzt brauche ich noch eine ähnliche, aber etwas kompliziertere Lösung.
Ich möchte nur ein einziges Tabellenblatt aus einer Datei heraus kopieren und mit dem Wert aus Zelle A1 als Dateiname (&".xlsm") im Unterordner "Archiv" des ursprünglichen Speicherortes abspeichern.
Die in diesem Tabellenblatt gespeicherten VBA- Codes sollen ebenfalls dabei erhalten bleiben.
Kennt jemand den Code für dieses Vorhaben?

Vielen Dank im voraus.
Harald G.

Anzeige
AW: Automatische Sicherungskopie per VBA
20.12.2014 21:53:42
Dieter
Hallo Harald,
du kannst das mit dem folgenden Programm machen

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim datei As String
Dim fso As FileSystemObject
Dim pfad As String
Dim wb As Workbook
Dim ws As Worksheet
Set fso = New FileSystemObject
pfad = Me.Path & "\Archiv\"
If Not fso.FolderExists(pfad) Then
MsgBox "Pfad '" & pfad & "' existiert nicht"
Exit Sub
End If
Set ws = Me.Worksheets("Tabelle2") ' Hier Name deiner Tabelle
datei = ws.Range("A1")
If datei = "" Then
MsgBox "Dateiname fehlt"
Exit Sub
Else
datei = datei & ".xlsm"
End If
On Error Resume Next
Kill pfad & datei
On Error GoTo 0
ws.Copy
Set wb = ActiveWorkbook
wb.SaveAs Filename:=pfad & datei, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
wb.Close
End Sub

Das Programm braucht einen Verweis auf die Bibliothek "Microsoft Scripting Runtime" (VBA-Editor: Extras > Verweise...)
Viele Grüße
Dieter

Anzeige
Frage: Automatische Sicherungskopie per VBA
23.12.2014 09:28:30
Harald
Hallo Dieter, hallo an alle,
vielen Dank für den Lösungsansatz.
Diesen kann ich bei mir auf der Arbeit leider nicht verwenden.
Hinweis von Dieter war:
Das Programm braucht einen Verweis auf die Bibliothek ""Microsoft Scripting Runtime"" VBA-Editor: Extras - Verweise...
Hierzu habe ich aber aufgrund eingeschränkter Benutzer- Berechtigung in meiner Firma keinen Zugriff.
Gibt es trotzdem eine Lösung für mein Ziel:
Ich möchte nur ein einziges Tabellenblatt aus einer Datei heraus kopieren und mit dem Wert aus Zelle A1 als Dateiname (&".xlsm") im Unterordner "Archiv" des ursprünglichen Speicherortes abspeichern.
Die in diesem Tabellenblatt gespeicherten VBA- Codes sollen ebenfalls dabei erhalten bleiben.
Kennt jemand den Code für dieses Vorhaben?

Vielen Dank im voraus.
Ansonsten wünsche ich allen ein frohes Weihnachtsfest und einen guten Start ins Jahr 2015
Harald G.
P.S. Wir arbeiten mit Office 2013
Mein Level: Excel gut - VBA bescheiden

Anzeige
AW: Frage: Automatische Sicherungskopie per VBA
23.12.2014 11:26:02
Dieter
Hallo Harald,
die Bibliothek "Microsoft Scripting Runtime" ist für dein Problem ganz irrelevant.
Ich habe sie nur verwendet, um die Existenz des Verzeichnisses "...\Archiv\" zu prüfen.
Du kannst aber genauso gut auch die gute alte Dir-Funktion verwenden.
Das Programm lautet dann:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim datei As String
Dim pfad As String
Dim wb As Workbook
Dim ws As Worksheet
pfad = Me.Path & "\Archiv\"
If Dir(pfad, vbDirectory) = "" Then
MsgBox "Pfad '" & pfad & "' existiert nicht"
Exit Sub
End If
Set ws = Me.Worksheets("Tabelle2") ' Hier Name deiner Tabelle
datei = ws.Range("A1")
If datei = "" Then
MsgBox "Dateiname fehlt"
Exit Sub
Else
datei = datei & ".xlsm"
End If
On Error Resume Next
Kill pfad & datei
On Error GoTo 0
ws.Copy
Set wb = ActiveWorkbook
wb.SaveAs Filename:=pfad & datei, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
wb.Close
End Sub
Viele Grüße und schöne Weihnachtstage
Dieter

Anzeige
AW: Frage: Automatische Sicherungskopie per VBA
23.12.2014 13:25:11
Harald
Hallo Dieter,
... das teste ich dann im neuen Jahr.
Erstmal vielen Dank, schöne Feiertage und einen guten Rutsch ins Jahr 2015.
Harald
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen