Clever-Excel-Forum

Normale Version: Backup mit Unload
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo an alle!

Ich wäre für mein Problem für Eure Hilfe sehr dankbar.

In der Arbeitsmappe habe ich folgenden Code:
Code:
Private Sub Workbook_Open()

'UserForm Login aufrufen
UfLogin.Show

End Sub
Im Modul habe ich diesen Code:
Code:
' Backup erstellen
Sub auto_close()

Dim Altname As String, Neuname As String, Pfad As String


If Range("B2").Value = "Nein" Then Exit Sub


Pfad = ThisWorkbook.Path & "\Backup-Versandliste\"
If Len(Dir(Pfad, vbDirectory)) = 0 Then MkDir Pfad 'Backupordner erstellen wenn nicht vorhanden
ThisWorkbook.Save
Altname = ThisWorkbook.FullName
If Right$(Pfad, 1) <> "\" Then Pfad = Pfad + "\"
Neuname = Pfad & "Backup-" & Format(Now, "DD-MM-YYYY") & "-" & ThisWorkbook.Name
On Error Resume Next
Kill Pfad & "Backup-" & Format(Now, "DD-MM-YYYY") & "-" & ThisWorkbook.Name 'Alte Backupdatei gleicher Tag entfernen
ThisWorkbook.SaveAs Filename:=Neuname

Workbooks.Open (Altname)

Unload UfLogin (Die stelle funktioniert aber so nicht!)

ThisWorkbook.Close
End Sub

Jetzt habe ich ein kleines Problem, obwohl alles super Funktioniert.

Problem: Datei öffnen, Userform startet. Daten rein alles ok!
Beim schließen der Datei wird das Backup erstellt und die Altdatei nochmal geöffnet.

Danke für Eure Unterstützung

Jetzt soll er allerdings nicht mehr die Userform öffnen! sondern einfach die Datei schließen, wenn das Backup durchgelaufen ist
Hallo,

nimm fürs Öffnen ebenfall die ältere Version wie beim Close in einem normalen Modul:

Code:
Sub Auto_Open()
  'UserForm Login aufrufen
  UfLogin.Show
End Sub

Das Workbook_Open()-Ereignis im Modul DieseArbeitsmappe löschst Du dann.

Gruß, Uwe
Hi

Schau dir mal SaveCopyAs an.

Gruß Elex
Danke Elex.

Hab diese Variante auch schon getestet, allerdings wird da nicht ob speichern(überschreiben) nachgefragt, sondern einfach nur kopiert.

Deshalb hab ich die Variante von Kuwer genutzt

Trotzdem allen vielen Dank für Eure super schnelle Hilfe
Hallo Andyle,

das Du auf die uralten, von M$ nicht mehr empfohlenen Ereignis-Methoden umsteigst, verstehe ich nicht.
ThisWorkbook.SaveCopyAs ist doch genau die richtige Methode, um Sicherungskopien zu erstellen.
Wenn Du verhindern willst, daß die vorherige Sicherungskopie des selben Tages überschrieben wird, dann hänge noch einen Tages-Indexzähler dran, aber dem Anwender es zu überlassen zu entscheiden, ob die Vorgänger-Sicheruingsdatei überschrieben wird, halte ich für keine gute Idee.

Gruß von Luschi
aus klein-Paris
Moin

Wieso sollte es überhaupt zur Überschreiben Abfrage kommen wenn du eh vorher ein Kill machst?

Gruß Elex
Wieso überhaupt etwas Programmieren? Eure IT soll doch einfach die in Windows integrierte Möglichkeit des Dateiversionsverlaufs aktivieren. Damit kannst du jederzeit eine frühere Version jeder beliebigen Datei hervorzaubern.