automatische Sicherungskopie

Bild

Betrifft: automatische Sicherungskopie
von: Silvie
Geschrieben am: 02.12.2003 11:41:07

Mahlzeit!
Weiß jemand von Euch, ob es in Excel die Möglichkeit gibt, automatisch eine Sicherungskopie zu erstellen und zwar nur von den Dateien die aus dem Verzeichnis C:\Test\Allgemein\... geöffnet und gespeichert werden, davon soll dann eine Sicherungskopie im Verzeichnis (z.B.: C:\Test\Sicherungskopie) angelegt werden.

Ich möchte jetzt nicht jeder einzelnen Datei ein Makro zuweisen müssen, da es sich um über 100 Dateien handelt.

Sobald eine Datei aus dem bestimmten Verzeichnis geöffnet und gespeichert wird, soll diese Sicherungskopie erstellt werden.

Hoffe ich hab mich einigermaßen deutlich ausgedrückt... und hoffentlich gibts
ne Lösung!

Vielen Dank schonmal

Silvie

Bild


Betrifft: AW: automatische Sicherungskopie
von: NE
Geschrieben am: 02.12.2003 11:45:52

Hallo,

schau' mal unter speichern > Extras > allgemeine Optionen > Sicherungskopie, das mal anhakeln ;-)

lg Nancy


Bild


Betrifft: nee, das meinte ich nicht
von: silvie
Geschrieben am: 02.12.2003 11:53:05

es soll doch nur ein bestimmtes Verzeichnis betreffen und in ein bestimmtes gespeichert werden...


Bild


Betrifft: AW: nee, das meinte ich nicht
von: Nepumuk
Geschrieben am: 02.12.2003 12:04:13

Hallo Silvie,
mit einem Klassenmodul der Application in einem AddIn wäre das machbar. Ich kann aber nicht verhindern, das der User im Add-Ins-Manager das Addin entlädt. Außerdem müsste das AddIn auf jedem Rechner, so es sich um ein Netzwerk handelt, gespeichert sein, der auf die Mappen in dem Verzeichnis zugreifen kann.
Gruß
Nepumuk


Bild


Betrifft: und wie geht das?
von: silvie
Geschrieben am: 02.12.2003 12:09:34

Danke erstmal Nepumuk!
Aber kannst du das noch mal genauer erklären?

Gruß
Silvie


Bild


Betrifft: AW: und wie geht das?
von: Nepumuk
Geschrieben am: 02.12.2003 12:27:50

Hallo Silvie,
ein Klassenmodul ist ein Modul, das auf Ereignisse der Klasse, in diesem Fall das Applikation-Objekt reagiert. Das Application-Objekt ist in diesem Fall Excel. Wenn nun eine Mappe geöffnet wird, wird ein Ereignis ausgelöst. In dieser Ereignisprozedur kann nun abgefragt werden aus welchem Verzeichnis die Mappe stammt und bei einem bestimmten Verzeichnis einfach eine Kopie der gerade geöffneten Mappe in ein anders Verzeichnis schreiben.
Ein Addin ist eine spezielle Excelmappe in der sich Makros befinden. Wenn diese Mappe im Add-Ins-Manager - Verzeichnis steht und ein Häkchen zum aktivieren davor ist, wird es automatisch mit Excel geladen.
Alles klar?
Gruß
Nepumuk


Bild


Betrifft: Mensch Nepumuk...
von: silvie
Geschrieben am: 02.12.2003 13:16:26

Deine Antwort ist nicht gerade anfängerfreundlich...
Klassenmodul kenn ich wohl, aber wo muß ich das anlegen in einer bestimmten Arbeitsmappe oder wie und dann???

:O(


Bild


Betrifft: AW: Mensch Nepumuk...
von: Nepumuk
Geschrieben am: 02.12.2003 13:43:09

Hallo Silvie,
die Materie ist nicht anfängerfreundlich. Wenn ich das versuche ganz ausführlich zu erklären, dann benötige ich ca. 3 DIA A4 Seiten dazu. Ich lade dir mal eine Beispielmappe auf den Server, damit du siehst wie es vom Prinzip her funktionieren wird.

https://www.herber.de/bbs/user/2265.xls

Öffne die Mappe mal, und dann eine andere. Dann siehst du wie das Klassenmodul arbeitet.
Gruß
Nepumuk


Bild


Betrifft: AW: Mensch Nepumuk...
von: Silvie
Geschrieben am: 02.12.2003 15:23:13

Danke!
Das ist doch schon mal was zum üben...

Silvie


Bild


Betrifft: AW: Mensch Nepumuk...
von: Nepumuk
Geschrieben am: 02.12.2003 16:32:28

Hallo Silvie,
jetzt kommt der Teil, der das speichern der Kopie einer Mappe, die aus einem bestimmten Verzeichnis kommt, bewerkstelligt. Der sieht so aus.

Option Explicit
Public WithEvents App As Application
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
    If Wb.Path = "D:\Eigene Dateien\Test\Allgemein" Then Wb.SaveCopyAs "D:\Eigene Dateien\Test\Sicherungskopie " & Left(Wb.Name, Len(Wb.Name) - 4) & " " & Format(Now, "dd.mm.yyyy hh.mm.ss") & " .xls"
End Sub


Code eingefügt mit: Excel Code Jeanie


Hier musst du nun die Pfade anpassen. Jetzt wird beim öffnen einer Mappe aus dem bestimmten Ordner eine Kopie angelegt, die den Dateinamen, das Datum und die Uhrzeit beinhaltet. Die Sicherheitskopie jedes mal zu überschreiben könnte fatal sein. Den wenn jemand Mist baut in der Mappe und speichert und ein anderer öffnet sie wider, dann wäre die Sicherheitskopie beim Teufel. als nächstes kommt der Teil, der nur die letzten 5 bis 10 Kopien aufbewahrt und die älteren löscht.
Gruß
Nepumuk


Bild


Betrifft: AW: Weiter gehts
von: Nepumuk
Geschrieben am: 02.12.2003 17:18:36

Hallo Silvie,
heute dauert alles ein bisschen länger, hab nämlich die Rüsselpest. Also, so sollte es dann aussehen, wenn die Löschroutine mit eingebaut ist. Diese arbeitet jetzt mit 5 Kopien. Wenn du das ändern willst, musst du die Zahl in der Execute - Anweisung ändern.

Option Explicit
Private Const strKopiePfad As String = "D:\Eigene Dateien\Test"
Public WithEvents App As Application
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
    If Wb.Path = "D:\Eigene Dateien\Test\Allgemein" Then Wb.SaveCopyAs strKopiePfad & "\Sicherungskopie " & Left(Wb.Name, Len(Wb.Name) - 4) & " " & Format(Now, "dd.mm.yyyy hh.mm.ss") & " .xls"
    With Application.FileSearch
        .LookIn = strKopiePfad
        .FileType = msoFileTypeExcelWorkbooks
        .Filename = "Sicherungskopie " & Left(Wb.Name, Len(Wb.Name) - 4) & "*"
        If .Execute(msoSortByLastModified) > 5 Then Kill (.FoundFiles(1))
    End With
End Sub


Code eingefügt mit: Excel Code Jeanie

Wenn dann alles so funktioniert wie du dir das vorgestellt hast, dann machen wir uns an das Addin.
Gruß
Nepumuk Schniefnase


Bild

Beiträge aus den Excel-Beispielen zum Thema " automatische Sicherungskopie"