Office: automatische Sicherheitskopie

Helfe beim Thema automatische Sicherheitskopie in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hey Community, hab ne Frage zu einem Makro: Sub auto_close() Dim Altname As String, Neuname As String, Pfad As String Pfad =... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Wolfee, 6. August 2010.

  1. Wolfee Erfahrener User

    automatische Sicherheitskopie


    Hey Community,

    hab ne Frage zu einem Makro:

    Code:
    
    Sub auto_close()
    
    Dim Altname As String, Neuname As String, Pfad As String
    
    Pfad = "H:\EXCEL\Rechnungsaufstellung\Verlegeabrechnung\Sicherheitskopien\Sicherheitskopien"
    
    'ThisWorkbook.Save
    
    Altname = ThisWorkbook.FullName
    
    If Right$(Pfad, 1) <> "\" Then Pfad = Pfad + "\"
    
    Neuname = Pfad & Format(Now, "YYYY-MM-DD") & "-" & ThisWorkbook.Name
    
    ThisWorkbook.SaveAs Filename:=Neuname
    
    'Workbooks.Open (Altname)
    
    ThisWorkbook.Close
    
    End Sub
    
    (das Workbooks.open und ThisWorkbook.Save hab ich auskommentiert)

    Wie kann ich es machen, dass nur eine Sicherheitskopie erstellt wird, wenn der Benutzer speichert.
    Das heißt wenn beim Schließen speichern bejaht wird.
    (beim Speichern ohne Schließen muss das nicht sein)

    Hat da jemand nen Codeschnipsel für mich? ;D

    Vielen Dank

    Wolfee
     
    Wolfee, 6. August 2010
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    der folgende VBA-Code ist in 'DieseArbeitsmappe' zu speichern. Er macht Folgendes:

    Hat der Mappenbenutzer das Schließen der Mappe veranlasst, wird

    1) stets das folgende Makro aufgerufen, wobei der Benutzer gefragt wird, ob er eine Sicherungskopie erstellen will.
    Bejaht er dies, wird diese erstellt, ohne den Orginalnamen der Arbeitsmappe zu ändern (Methode 'SaveCopyAs').

    2) und dann der Benutzer gefragt, ob er die Mappe unter ihrem Originalnamen speichern will (falls sie sich geändert hat).

    Code:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
      If MsgBox(Title:="Vor dem Schließen", _
                Prompt:="Sicherungskopie speichern?", _
                Buttons:=vbExclamation + vbYesNo) = vbYes Then
                
        'Hier Code zum Speichern einfügen:
        Dim BackupName As String, Pfad As String
        Pfad = "H:\EXCEL\Rechnungsaufstellung\Verlegeabrechnung\Sicherheitskopien\Sicherheitskopien"
        If Right$(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
        BackupName = Pfad & Format(Now, "YYYY-MM-DD") & "-" & ThisWorkbook.Name
        'Speichert, ohne den Arbeitsmappennamen zu ändern:
        ThisWorkbook.SaveCopyAs Filename:=BackupName
      Else
        'Falls Code im Fall des Nicht-Speicherns nötig ist, hier einfügen:
        'Cancel = True 'Mit dieser Einstellung wird die Mappe nicht geschlossen!
      End If
      
    End Sub
    EDIT:
    Anmerkung: Ein Backup wird in diesem Fall von derjenigen Mappe angefertigt, die dieses Makro beinhaltet. Wäre sie zB. Bestandteil eines Add-In, würde nur die Add-In-Mappe gesichert (wegen 'ThisWorkbook'). Wenn das Makro Bestandteil einer normalen Arbeitsmappe ist, ergibt sich daraus kein Problem, weil dann 'ActiveWorkbook' und 'ThisWorkbook' identisch sind.
     
    Exl121150, 6. August 2010
    #2
  3. Wolfee Erfahrener User
    Hallo Exl121150,

    leider öffnet sich die Msgbox nicht wenn ich das Dokument schließe.

    Wenn ich das Makro umbenenne und selber ausführe funktionierts.

    Woran könnte es liegen?

    Danke schon mal

    Biber

    edit:
    Code:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    
    Call Sicherungskopie
      
    End Sub
    
    Sub Sicherungskopie()
      If MsgBox(Title:="Vor dem Schließen", _
                Prompt:="Sicherungskopie speichern?", _
                Buttons:=vbExclamation + vbYesNo) = vbYes Then
                
        'Hier Code zum Speichern einfügen:
        Dim BackupName As String, Pfad As String
        Pfad = "H:\EXCEL\Rechnungsaufstellung\Verlegeabrechnung\Sicherheitskopien\Sicherheitskopien"
        If Right$(Pfad, 1) <> "\" Then Pfad = Pfad & "\"
        BackupName = Pfad & Format(Now, "YYYY-MM-DD") & "-" & ThisWorkbook.Name
        'Speichert, ohne den Arbeitsmappennamen zu ändern:
        ThisWorkbook.SaveCopyAs Filename:=BackupName
      Else
        'Falls Code im Fall des Nicht-Speicherns nötig ist, hier einfügen:
        'Cancel = True 'Mit dieser Einstellung wird die Mappe nicht geschlossen!
      End If
    
    End Sub
    
    so klappts leider auch nicht
     
    Wolfee, 6. August 2010
    #3
  4. Exl121150 Erfahrener User

    automatische Sicherheitskopie

    Hallo,

    eine MsgBox muss man über einen ihrer Buttons schließen; sie schließt sich niemals automatisch. Im Fall des obigen Makros wird eine Sicherungskopie erstellt, wenn man auf den Button 'Ja' klickt; klickt man auf 'nein', wird keine Sicherungskopie erstellt.

    Ich kann Dir auch eine Makroversion basteln, die ohne die MsgBox auskommt: Das Makro erstellt dann prinzipiell eine Sicherungskopie, sobald man die Excel-Mappe schließt (und egal, ob die Mappe unter ihrem Originalnamen wegen Datenänderung gespeichert wird):
    Code:
    Private Sub Workbook_BeforeClose(Cancel As Boolean) 
    
        'Hier Code zum Speichern einfügen: 
        Dim BackupName As String, Pfad As String 
        Pfad = "H:\EXCEL\Rechnungsaufstellung\Verlegeabrechnung\Sicherheitskopien\Sicherheitskopien" 
        If Right$(Pfad, 1) <> "\" Then Pfad = Pfad & "\" 
        BackupName = Pfad & Format(Now, "YYYY-MM-DD") & "-" & ThisWorkbook.Name 
        'Speichert, ohne den Arbeitsmappennamen zu ändern: 
        ThisWorkbook.SaveCopyAs Filename:=BackupName 
    
    End Sub
     
    Exl121150, 6. August 2010
    #4
  5. Wolfee Erfahrener User
    Entschuldigung ich hab mich falsch ausgedrückt.

    Es erscheint keine Msgbox und es wird auch keine Sicherungskopie erstellt.
    Also das Makro wird beim Schließen gar nicht aufgerufen.

    Hab das auch mit nem anderen Makro ausprobiert wo nur etwas in eine Zelle geschrieben wird, jedoch geht das auch nicht.

    MfG Wolfee
     
    Wolfee, 6. August 2010
    #5
  6. schatzi Super-Moderator
    Hallo!

    Aber das hier hast du beherzigt, oder?
     
    schatzi, 6. August 2010
    #6
  7. Wolfee Erfahrener User
    *donk*

    Vielen Dank.
    Die Zeile hatte ich wohl überlesn :roll:

    Funktioniert super =)

    MfG Wolfee
     
    Wolfee, 6. August 2010
    #7
  8. Exl121150 Erfahrener User

    automatische Sicherheitskopie

    Hallo,

    hast Du das Makro in das Codefenster für das Microsoft-Excel-Objekt 'DieseArbeitsmappe' kopiert bzw. gespeichert?
    Wenn Du es nur in ein allgem. Codemodul kopiert/gespeichert hast, dann geschieht tatsächlich nichts damit (die Prozedur ist noch dazu 'Private' und deshalb außerhalb des Moduls unsichtbar).

    Um in das Codefenster für 'DieseArbeitsmappe' zu gelangen, muss im VBA-Editor das Fenster 'Projekt - VBAProjekt' sichtbar sein. Falls dieses bei Dir ausgeblendet sein sollte, drücke doch die Tastenkombination Strg+R, dann muss es auf alle Fälle zu sehen sein.
    Dann siehst Du eine Auflistung, in der der Listeneintrag 'VBAProjekt (NameXY)' in fetter Schrift zu sehen ist; dann in der nächsten Zeile 'Microsoft Excel Objekte'. Sollte vor diesem Eintrag ein +-Kästchen zu sehen sein, so klicke darauf, sodass ein Minus-Kästchen daraus wird.
    Dann sind die Listeneinträge für 'DieseArbeitsmappe', 'Tabelle1 (Tabelle1)', 'Tabelle2 (Tabelle2)', usw. zu sehen.
    Auf den Listeneintrag 'DieseArbeitsmape' machst Du einen Doppelklick mit Maus, sodass sich das dazugehörige Codefenster öffnet: in dieses speicherst Du dann den obigen Makrocode (je nachdem, welchen der beiden Makroversionen Du eben bevorzugst).
     
    Exl121150, 6. August 2010
    #8
Thema:

automatische Sicherheitskopie

Die Seite wird geladen...
  1. automatische Sicherheitskopie - Similar Threads - automatische Sicherheitskopie

  2. gezielt Daten aufzählen und zuordnen

    in Microsoft Excel Hilfe
    gezielt Daten aufzählen und zuordnen: Hallo, ich hab schon wieder ein Problemchen. Ich habe eine Tabelle (siehe Anhang) auf der unter "Eingabe" jeder Person bestimmte Tätigkeiten zugeordnet werden. Dabei werden nur die Tätigkeiten,...
  3. Links auf Dateien automatisch als Links formatieren

    in Microsoft Word Hilfe
    Links auf Dateien automatisch als Links formatieren: Hallo, wenn ich eine URL in ein Word-Dokument kopiere, erkennt Word das autmatisch und generiert einen anklickbaren Linke. Verlinke ich aber auf .msg-Dateien auf meiner Festplatte, funktioniert...
  4. Werte automatisch übernehmen

    in Microsoft Access Hilfe
    Werte automatisch übernehmen: Hallo, ich habe schon wieder ein Problem bei dem ich eure Hilfe brauchen könnte. Vereinfacht dargestellt möchte ich einen Wert aus einer Tabelle automatisch in eine andere Tabelle speichern. Ich...
  5. Automatisches Ausfüllen: Vier-Tage-Woche

    in Microsoft Excel Hilfe
    Automatisches Ausfüllen: Vier-Tage-Woche: Hallo zusammen! Ich würde gerne mal wissen, wie ich es hinbekomme, das ich eine Spalte Datumsbasiert auf der Vier-Tage-Woche automatisch ausfüllen lassen kann anhand der Benutzerdefinierten...
  6. Werte per VBA automatisch übertragen und fortlaufend speichern

    in Microsoft Excel Hilfe
    Werte per VBA automatisch übertragen und fortlaufend speichern: Moin, ich habe da mal eine bitte: wie kann ich diesen Code dazu bringen von einer bestimmten Datei automatische Werte in eine andere Datei kopiert? Ich kann zwar die Werte in derselben Tabelle...
  7. Automatische Sicherheitskopie

    in Microsoft Access Hilfe
    Automatische Sicherheitskopie: Hallo Zusammen, in unserer Redaktion sammeln wir Personendaten in einer Datenbank. Vor allem unsere Praktikanten sind mit Ergänzungen der Datensätze beschäftigt. Damit nun nicht durch einen...
  8. Automatische Sicherheitskopie mit Datum

    in Microsoft Excel Hilfe
    Automatische Sicherheitskopie mit Datum: Hallo, ich möchte für meine Excel Listen eine Automatische Sicherheitskopie erstellen lassen die immer gespeichert wird wenn etwas geändert wird. Also das eben die alte Version dann als...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden