Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Beim Öffnen Sicherungskopie in Unterordner

Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 10:10:26
Fritz_W
Hallo VBA-Experten,
in der Recherche bin ich auf den nachstehenden Code gestoßen, mit dem beim Öffnen der Mappe unter dem aktuellen Datum eine Sicherungskopie erstellt wird und in einem durch einen Pfad vorgegebenen Ordner gespeichert wird.
Ich würde nun gerne den Code so verändert haben, dass die Speicherung immer in einem Unterverzeichnis (Unterordner) "Sicherung" des Ordners erfolgt, aus dem die Originaldatei geöffnet wird. Ist ein solcher Ordner nicht vorhanden, sollte er erstellt werden.
Für Eure Unterstützung im voraus besten Dank.
Gruß
Fritz
Sub speichern()
Dim dname As String
Dim dateiname As String
Dim pfad As String
dateiname = "Name der Sicherung "
pfad = "C:\Dokumente und Einstellungen\..\Eigene Dateien\..\sicherung\2008"
dname = Format(Now, "DD_MM_YYYY")
Application.DisplayAlerts = False
If Dir(pfad & "/" & dateiname & dname & ".xls") = "" Then
ActiveWorkbook.SaveCopyAs Filename:=pfad & "/" & dateiname & dname & ".xls"
End If
Application.DisplayAlerts = True
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 10:13:46
Hajo_Zi
Hallo Fritz,
Option Explicit
Sub speichern()
Dim dname As String
Dim dateiname As String
Dim pfad As String
dateiname = "Name der Sicherung "
pfad = ThisWorkbook.Path & "\Sicherung\"
dname = Format(Now, "DD_MM_YYYY")
Application.DisplayAlerts = False
If Dir(pfad & "/" & dateiname & dname & ".xls") = "" Then
ActiveWorkbook.SaveCopyAs Filename:=pfad & dateiname & dname & ".xls"
End If
Application.DisplayAlerts = True
End Sub

AW: Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 10:35:00
Fritz_W
Hallo Hajo,
vielen Dank für Deine Unterstützung.
Leider komme ich mit dem Code nicht klar, möglicherweise wurde das von mir beigefügte Makro - gegenüber der ursprünglichen Anforderung - doch entscheidend verändert, daher der nachfolgende Link zur Recherche.
Ganz wichtig:
Die Speicherung (= Sicherung der Originaldatei) sollte immer beim Öffnen der Mappe unter dem jeweiligen Tagesdatum erfolgen.
Die Mappe wird im xlsx Format geöffnet und sollte auch in diesem Format gespeichert werden mit dem aktuellen Datum als Ergänzung des Dateinamens.
Die Speicherung sollte in einem Unterordner "Sicherung" zum Ordner der Originaldatei erfolgen.
Viele Grüße
Fritz
https://www.herber.de/forum/archiv/976to980/978218_Makro_fuer_Sicherheitskopie.html

Anzeige
AW: Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 10:50:16
Nepumuk
Hallo,
1. Ist das nur für eine bestimmte Mappe geplant oder soll das mit allen geschehen.
2. Würde ich auch noch die Uhrzeit mitnehmen und nicht dauern die Sicherungskopie überschreiben, denn wenn dir jemand die Mappe zerschießt hast du nur noch alte Kopien.
Gruß
Nepumuk

AW: Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 11:00:24
Fritz_W
Hallo Nepumuk,
auch Dir vielen Dank für die Unterstützung.
Geplant ist das nur für eine bestimmte Mappe, dennoch ist es möglich, dass diese aus unterschiedlichen Ordnern geöffnet wird und deshalb sollte die Kopie in einem Unterordner "Sicherung" gespeichert werden und dieser - falls nicht vorhanden - angelegt werden.
Das mit der Berücksichtigung der Uhrzeit wäre für mich kein Problem.
Viele Grüße
Fritz

Anzeige
AW: Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 11:21:41
Nepumuk
Hallo,
in das Modul DieseArbeitsmappe:
Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long

Private Sub Workbook_Open()
    Const COPY_FOLDER As String = "Sicherung"
    Dim lngReturn As Long
    Dim strPath As String, strFilename As String
    strPath = Path & "\" & COPY_FOLDER & "\"
    lngReturn = MakeSureDirectoryPathExists(strPath)
    If lngReturn = 1 Then
        strFilename = Left$(Name, InStrRev(Name, ".") - 1) & "_" & _
            Format(Date, "YYYY_MM_DD") & "." & Right$(Name, Len(Name) - InStrRev(Name, "."))
        If Dir$(strPath & strFilename) <> vbNullString Then Call Kill(strPath & strFilename)
        Call SaveCopyAs(strPath & strFilename)
    Else
        Call MsgBox("Ordner für Sicherungskopie konnte nich angelegt werden." & _
            vbLf & vbLf & "Bitte unbedingt Herrn Fritz W. verständigen.", vbCritical, "Fehler")
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 11:32:04
Fritz_W
Hallo Nepomuk,
funktioniert wie gewünscht, ganz großes Kompliment und vielen Dank.
Gruß
Fritz

AW: Beim Öffnen Sicherungskopie in Unterordner
09.03.2015 21:32:04
Thomas
Hallo,
ich hake hier mal ein hoffe das es ok ist. Nur leider habe ich wenig Lösungen sondern nur viele fragen.
Der Code ist Riesenklasse nach so etwas suche ich schon lange. Ich habe nur bedenken das der Sicherungsordner irgendwann überläuft. Ist es denkbar das man dies folgendermassen Steuert:
1.) eine Sicherung Mo - So diese wird jeweils nach sagen wir 8 Wochen automatisch gelöscht. noch besser wäre eine Zelle mit der man bestimmt wielange und wo man Datein aufgehoben werden sollen. Dann könnte man es variable einsetzen ( ohne diese Angabe wäre auch toll)
Liebe grüsse Thomas

Anzeige
AW: Beim Öffnen Sicherungskopie in Unterordner
10.03.2015 10:35:28
Nepumuk
Hallo,
so werden die Kopien nach 8 Wochen automatisch gelöscht:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Declare PtrSafe Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long

Private Sub Workbook_Open()
    
    Const COPY_FOLDER As String = "\Sicherung\"
    Const STORE_DAYS As Long = 56
    
    Dim lngReturn As Long
    Dim strPath As String, strFilename As String
    Dim strWorkbookName As String, strExtension As String
    
    strPath = Path & COPY_FOLDER
    
    lngReturn = MakeSureDirectoryPathExists(strPath)
    
    If lngReturn = 1 Then
        
        strWorkbookName = Left$(Name, InStrRev(Name, ".") - 1)
        strExtension = Right$(Name, Len(Name) - InStrRev(Name, ".") + 1)
        
        strFilename = strWorkbookName & "_" & Format(Now, "yyyy_mm_dd_hh_nn_ss") & strExtension
        
        Call SaveCopyAs(strPath & strFilename)
        
        strFilename = Dir$(strPath & strWorkbookName & "*" & strExtension)
        
        Do Until strFilename = vbNullString
            
            If Now - FileDateTime(strPath & strFilename) > STORE_DAYS Then _
                Call Kill(strPath & strFilename)
            
            strFilename = Dir$
            
        Loop
        
    Else
        Call MsgBox("Ordner für Sicherungskopie konnte nich angelegt werden." & _
            vbLf & vbLf & "Bitte unbedingt Herrn Kaffl Tel. 1625 verständigen.", vbCritical, "Fehler")
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Beim Öffnen Sicherungskopie in Unterordner
10.03.2015 11:13:08
Thomas
Hallo Nepumuk,
vielen vielen Dank. Damit brauch man sich darüber keine Gedanken mehr zu machen.
Klasse . Werde ich gleich heut Abend durchtesten.
Liebe grüsse Thomas

AW: Beim Öffnen Sicherungskopie in Unterordner
10.03.2015 11:17:03
Fritz_W
Hallo Nepomuk,
auch ich freue mich über diese zusätzliche Änderung im Code. Ganz toll!
Gleichzeitig habe ich noch eine Frage zum im Code enthaltenen Aufruf der MsgBox mit dem Hinweis, dass der Ordner für die Sicherungskopie nicht angelegt werden konnte.
Unter welcher Voraussetzung trifft dies eigentlich zu?
Liebe Grüße
Fritz

AW: Beim Öffnen Sicherungskopie in Unterordner
10.03.2015 11:19:37
Nepumuk
Hallo Fritz,
wenn der Benutzer keine Berechtigung hat weil sie z.B. vom Admin eingeschränkt wurde.
Gruß
Nepumuk

Anzeige
AW: Beim Öffnen Sicherungskopie in Unterordner
10.03.2015 11:31:15
Fritz_W
Hallo Nepomuk,
herzlichen Dank.
Liebe Grüße
Fritz

AW: Beim Öffnen Sicherungskopie in Unterordner
10.03.2015 11:18:49
Thomas
Hallo Nepumuk,
vielen vielen Dank. Damit brauch man sich darüber keine Gedanken mehr zu machen.
Klasse . Werde ich gleich heut Abend durchtesten.
Liebe grüsse Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige