1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Exel Datei automatisch speichern

Discussion in 'Office-Programme' started by TriStarWorld, Jan 25, 2007.

Thread Status:
Not open for further replies.
  1. Guten Morgen!

    Ich benötige einmal Hilfe von Euch! Ich möchte, dass Exel 2003 alle 5 Minuten die Daten speichert. Das ich es über Makros schaffe, habe ich mittlerweile herusgefunden. Hier nun das Makkro :

    Sub Auto_open
    Dim nexttime
    ActiveWorkbook.Save
    nexttime = Now + TimeValue("00:05:00")
    Application.OnTime nexttime, "autosave"
    End Sub

    Ist das bisher richtig?
    Jetzt kommen meine Fragen. Wie füge ich nun dieses Makro in der Exel Datei ein? Das Makro sollte aebenfalls automatisch aktiviert sein, sobald die Datei geöffnet wird.

    Über eine Antwort würde ich mich freune.

    Viele Grüße aus Beckum!

    TriStarWorld
     
  2. TheD0CT0R

    TheD0CT0R Dr. h.c. Mod

    Warum verwendest du nicht einfach das Add-In "Automatisches Speichern"?

    Man muss doch nicht jedesmal das Rad neu erfinden... ;)
     
  3. Hi,

    meines Wissens, legt er unter Office 2003 dann nur eine Sicherungsdatei an und speichert die Daten aber nicht in der Datei selber.

    TriStarWorld
     
  4. TheD0CT0R

    TheD0CT0R Dr. h.c. Mod

    Dann hätte MS die Funktion im Vergleich zu Office 2000 aber arg umgebaut. Falls es tatsächlich so ist, hast du dir die Optionen von "Automatisches Speichern" mal angeschaut? Vielleicht kann man das wieder auf 2000er-Verhalten umstellen.
     
  5. Hallo,

    hier die Lösung!!

    Private Sub Workbook_Open()

    SaveMySelf

    End Sub

    Diesen Code legst Du in das Codemdodul in "DieseArbeitsmappe".
    Alt+F11 = VBA Editor, Baumelemente in der Projektansicht alle
    aufklappen, Doppelklick auf "DieseArbeitsmappe".

    Dann fügst Du ein Module ein, geht über Einfügen->Modul und
    kopierst diesen Code darein...
    Code:

    Public Sub SaveMySelf()

    ThisWorkbook.Save

    Application.OnTime Now + TimeValue("00:05:00"), "SaveMySelf"

    End Sub


    Speichen und schließen und wieder öffnen


    Viele Grüße aus Beckum

    TriStarWorld
     
  6. TheD0CT0R

    TheD0CT0R Dr. h.c. Mod

    Nur noch mal abschließend zum Verständnis:
    [​IMG]
    Das ist die Funktion aus Excel 2000 die ich meine. Bist du sicher dass sie unter Excel 2003 nur eine zusätzliche Sicherungsdatei erstellt?

    Ich bin nämlich gerade dabei einen neuen Rechner fürs Büro auszustatten und hatte eigentlich vor Office 2003 zu verwenden. Aber wenn die Funktion derart verändert wurde dann wirds eben doch eine zweite Lizenz für Office 2000.
     
  7. Hi,

    er speichert nur die Sicherheitkopie ab. Das ist leider so. Es gibt aber sicherlich irgend ein Tool, der abhilfe schafft. Es geht aber auch so wie ich beschrieben habe.

    Viele Grüße aus Beckum

    TriStarWorld
     
  8. Beverly

    Beverly Halbes Megabyte

    Hi TriStarWorld,

    mit deinem Code hat man aber das Problem, dass sich die Arbeitsmappe automatisch wieder öffnet.
     
  9. Hascheff

    Hascheff Moderator

    Das hängt vom Speicherort von SaveMySelf ab.
    Wegen ThisWorkbook.Save muss die Prozedur in der Arbeitsmappe gespeichert sein. Dann wird mit dem Schließen der Mappe vermutlich auch die Code-Ausführung abgebrochen.
     
  10. Beverly

    Beverly Halbes Megabyte

    Hi Hascheff,

    Wo soll sie sonst gespeichert sein? ThisWorkbook bezieht sich auf die Arbeitsmappe mit dem Code und dort steht auch die Prozedur.

    Das Problem liegt ganz wo anders - der Code für das wiederholte Aufrufen der Prozedur SaveMySelf wird nicht beendet. Indem man die Zeit, nach der wieder aufgerufen werden soll, auf eine Variable schreibt, kann man den Code problemlos beenden. Und so funktioniert es

    in einem allgemeinen Modul:
    Code:
    Option Explicit
    Public DaEt As Date
    
    ' Ursprungscode für das "Zeitmakro" ist von Hajo Ziplies 
    ' http://hajo-excel.de/
    Sub Zeitmakro()
        DaEt = Now + TimeValue("00:05:00")
        ThisWorkbook.Save
        Application.OnTime DaEt, "Zeitmakro"
    End Sub
    
    und unter DieseArbeitsmappe:
    Code:
    Option Explicit
    
    Private Sub Workbook_Open()
        Zeitmakro
    End Sub
    
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        On Error Resume Next
        Application.OnTime EarliestTime:=DaEt, Procedure:="Zeitmakro", Schedule:=False
    End Sub
    
     
  11. Hascheff

    Hascheff Moderator

    Hi Beverly,
    so klappts bestimmt. Ich habe die verschiedenen Lösungen nicht getestet.

    @ TriStarWorld: Beverlys Lösung hat noch einen Pluspunkt: Er enthält eine Quellenangabe. Deine Lösung stammt sicher auch nicht von dir.
     
Thread Status:
Not open for further replies.

Share This Page