Herbers Excel-Forum - das Archiv

Beforesave-Ereignis für alle Arbeitsmappen

Bild

Betrifft: Beforesave-Ereignis für alle Arbeitsmappen
von: Christina
Geschrieben am: 04.12.2003 12:20:42
Hallo,

mit dem Beforesave-Ereignis erstelle ich automatisch beim speichern Sicherungskopien. Diesen Ablauf möchte ich für alle Arbeitsmappen festlegen. Wenn ich aber nun eine Arbeitsmappe öffne, die ich vorher noch nie bearbeitet habe, ist das Makro ja noch nicht verhanden. Kann ich es zentral zu Verfügung stellen, unabhängig von der Arbeitsmappe? Oder ist es zumindest möglich dieses Makro aus einer anderen Arbeitsmappe, die ich dann halt immer geöffnet habe, zur Verfügung zu stellen und abzurufen?

Danke im voraus.
Christina

Bild

Betrifft: AW: Beforesave-Ereignis für alle Arbeitsmappen
von: Nepumuk
Geschrieben am: 04.12.2003 12:27:07
Hallo Christina,
das geht mit einem AddIn in dem ein Klassenmodul für das Application - Objekt ist.
Alles klar?
Wenn nicht, dann muss ich wissen wo wir anfangen sollen.
Gruß
Nepumuk
Bild

Betrifft: AW: Beforesave-Ereignis für alle Arbeitsmappen
von: Christina
Geschrieben am: 04.12.2003 13:13:02
Danke für die schnelle Antwort. Leider ist noch nicht alles klar. Bitte von Anfang an.
Klassenmodul über einfügen -> Klassenmodul? Und in welcher Mappe muß ich das einfügen? In irgendeiner? Und dann?

Christina
Bild

Betrifft: AW: Beforesave-Ereignis für alle Arbeitsmappen
von: Nepumuk
Geschrieben am: 04.12.2003 13:27:49
Hallo Christina,
ich habe dir mal eine Mappe gemacht, in der das ganze eingebaut ist. Es werden die jeweils die letzten 5 Kopien aufbewahrt. Du musst nur noch den Pfad anpassen. Wenn du den Namen der Kopie ändern willst, dann musst du ihn auch im FileSearch - Objekt anpassen. Teste das mal (meine Mappe offen, dann eine andere öffnen und mehrmals speichern. Wenn das so funktioniert wie du dir das vorgestellt hast, dann machen wir ein AddIn daraus.

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

Gruß
Nepumuk
Bild

Betrifft: AW: Beforesave-Ereignis für alle Arbeitsmappen
von: Christina
Geschrieben am: 04.12.2003 13:53:32
Danke! Funktioniert wunderbar. Nur das mit dem Löschen möchte ich nicht, aber da genügt es bestimmt die Zeile if.execute rauszunehmen? Ein AddIn? Wie geht das denn?
Und eigentlich wollte ich nicht zweimal posten, ist versehentlich zweimal rausgegangen, hmpf...
Bild

Betrifft: AW: Beforesave-Ereignis für alle Arbeitsmappen
von: Nepumuk
Geschrieben am: 04.12.2003 14:03:04
Hallo Christina,
wenn ohne löschen, dann genügt dieser Code


Private Sub App_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)
Wb.SaveCopyAs strKopiePfad & "\Sicherungskopie " & Left(Wb.Name, Len(Wb.Name) - 4) & " " & Format(Now, "dd.mm.yyyy hh.mm.ss") & " .xls"
End Sub



Um aus dem ganzen ein AddIn zu machen, gehst du in der Mappe auf - Speichern unter und wählst aus der Liste - Dateityp den letzten Eintrag - Microsoft Excel AddIn aus. Im Browserfenster wird daraufhin der Standardordner für Addins angezeigt. Jetzt einfach speichern. Excel schließen und leer wieder öffnen. Im AddIns-Manager sollte jetzt das neue AddIn in der Liste auftauchen. Ein Häkchen davor, das war's.
Gruß
Nepumuk
Bild

Betrifft: AW: Beforesave-Ereignis für alle Arbeitsmappen
von: Christina
Geschrieben am: 04.12.2003 15:09:58
Vielen, vielen dank. Genau so hatte ich mir das vorgestellt!
Gruß
Christina
Bild
Excel-Beispiele zum Thema " Beforesave-Ereignis für alle Arbeitsmappen"
Blätter in andere Arbeitsmappen kopieren Variablenübergabe in andere Arbeitsmappen
Zugriff auf geschlossene Arbeitsmappen 1000 Arbeitsblätter aus 1000 Arbeitsmappen einlesen
Arbeitsmappen-History erstellen Alle Arbeitsmappen außer einer schließen
Auslesen der Arbeitsmappeneigenschaften Geöffnete Arbeitsmappen mit Arbeitblättern listen
Alle Arbeitsmappen schließen bzw. Excel beenden Ausgewählte Tabellenblätter als eigene Arbeitsmappen speichern