Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Automatische Sicherheitskopie





Frage

Ich verzweifle noch, wie bekomme ich Excel dazu, dass das Programm jeden Tag im Monat eine Sicherheitskopie automatisch anlegt und speichert. Wird an einem Tag die Datei öfter geschlossen so soll die bereits erstellte Sicherheitskopie dieses Tages überschrieben werden. Mir reichen die letzten z.b 30 Sicherheitskopieen die Excel erstellt hat. Ab 31 Sicherheitskopieen soll die älteste automatisch gelöscht werden. Wäre echt dankbar wenn das hier jemand hinbekommen könnte. Bitte zeigt mir dass Ihr es könnt. Für euch doch kein Problem oder?

Antwort 1 von coros

Moin nitro,

kopiere nachfolgenden Code in das VBA-Projekt "DieseArbeitsmappe".

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Dateien$, Anzahl%, Wiederholungen As Integer, Kopienummer As Integer, _
Pfad As String, Namenslänge As Variant, Dateiname As String
Pfad = "C:\Sicherheitskopien\"
Dateiname = "Sicherheitskopie_"
ChDir Pfad
Dateien = Dir(Pfad & "*.xls")
Do While Dateien <> ""
Anzahl = Anzahl + 1
Namenslänge = Len(Dateien)
On Error Resume Next
Kopienummer = Mid(Dateien, Namenslänge - 5, 2)
If Kopienummer >= 10 Then
Kopienummer = Kopienummer
End If
Dateien = Dir()
Loop
If Anzahl = 0 Then
Anzahl = 1
ActiveWorkbook.SaveCopyAs Pfad & Dateiname & Anzahl & ".xls"
Else
If Kopienummer < 10 Then
MsgBox Anzahl
ActiveWorkbook.SaveCopyAs Pfad & Dateiname & Anzahl + 1 & ".xls"
Else
ActiveWorkbook.SaveCopyAs Pfad & Dateiname & Kopienummer + 1 & ".xls"
End If
End If
If Kopienummer >= 31 Then
Kill Pfad & Dateiname & Kopienummer - 30 & ".xls"
End If
End Sub


Bei dem Code wird von der Exceldatei beim Schließen der Datei eine Kopie in dem Verzeichnis "C:\Sicherheitskopien\" unter dem Namen "Sicherheitskopie_" gefolgt von einer Nummer angelegt. Sind in dem Verzeichnis 31 Dateien enthalten, wird die Datei mit der kleinsten Nummer gelöscht.
Sollen die Dateien in einem anderen Verzeichnis als dem in dem Code angegebenen gespeichert werden, so muss in dem Code in der Zeile

Pfad = "C:\Sicherheitskopien\"

der Pfad zwischen den Anführungszeichen abgeändert werden. Soll der Dateiname ein anderer werden, so muss ebenfalls in dem Code in der Zeile

Dateiname = "Sicherheitskopie_"

der Text zwischen den Anführungszeichen geändert werden.

Ich hoffe, Du hast das so gemeint und Du kommst klar. Bei Fragen melde Dich.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 1 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von nitro

Hallo coros,

ich bin jetzt schon von Deinen Fähigkeiten beeidurckt.
Hoffentlich funkt alles so, wie ich mir das vorstelle.
Vielen, Vielen Dank schon mal für Deine Mühe.
Ich werde auf jeden Fall nochmal Rückmeldung geben
ob Dein Vorschlag funktioniert.
Echt klasse einen Helfer an seiner Seite zu wissen.

Gruß Martin

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: