• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Automatische Copy's/Back-ups verwijderen na aantal minuten/dagen.

Status
Niet open voor verdere reacties.

pinguin1

Gebruiker
Lid geworden
29 nov 2016
Berichten
18
Goedemorgen,

Ik vraag me af hoe ik automatisch copy's (Back-up's) kan verwijderen die ouder zijn dan zoveel minuten of dagen.
Hieronder heb ik de code die ik gebruik, om een back-up te maken van een Excel bestand, en die op te slaan als iemand hem sluit.

Met Vriendelijke Groet,

Pinguin1


code:

Private Sub Workbook_Open()
ThisWorkbook.SaveCopyAs "C:" & "Backup_" & ThisWorkbook.Name
End Sub

Function FileExists(ByVal FileToTest As String) As Boolean
FileExists = (Dir(FileToTest) <> "")
End Function

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub
 
Onderstaande verwijdert alle bestanden ouder dan 10 dagen:
Code:
Sub VerwijderBackUps()
strPath = "C:\Backup_\"
strFile = Dir(strPath)
Do While strFile <> ""
    If FileDateTime(strPath & strFile) < (Date - 10) Then
        Kill strPath & strFile
    End If
    strFile = Dir
Loop
End Sub
 
Code:
If FileDateTime(strPath & strFile) < (Date + Time - TimeValue("00:10:00")) Then
 
Ik heb hem er aan toegevoegd en van alles geprobeerd maar hij verwijderd de back-up nog steeds niet binnen 2 min.

Code:

Private Sub Workbook_Open()
ThisWorkbook.SaveCopyAs "C:" & "Backup_" & ThisWorkbook.Name
End Sub

Function FileExists(ByVal FileToTest As String) As Boolean
FileExists = (Dir(FileToTest) <> "")
End Function

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True
End Sub

Sub DeleteBackUps()
strPath = "C:\Backup_"
strFile = Dir(strPath)
Do While strFile <> ""
If FileDateTime(strPath & strFile) < (Date + Time - TimeValue("00:02:00")) Then
Kill strPath & strFile
End If
strFile = Dir
Loop
End Sub
 
Klopt je pad? Ik mis in ieder geval al een ""aan het eind...
 
Laatst bewerkt:
Klopt je pad? Ik mis in ieder geval al een "" aan het eind...

ik ben niet heel goed in Vba, maar ik heb bij strPath erachter de mappenstructuur naar de backup-map gezet.
En bij strFile "" had ik eerst ook tussen de "" de mappenstructuur gezet van de backup-map gezet. Maar daarna weggehaald dus weet nu niet meer waar ik wat moet neerzetten.
 
Vreemd.... In m'n vorige post is het \-teken niet overgenomen, en ook na aanpassen verschijnt ie niet.
Maar goed,...
Code:
strPath = "C:\Backup_\"
Deze moet beginnen met " en eindigen met het \-teken en "
 
Laatst bewerkt:
Vreemd.... In m'n vorige post is het \-teken niet overgenomen, en ook na aanpassen verschijnt ie niet.
Maar goed,...
Code:
strPath = "C:\Backup_\"
Deze moet beginnen met " en eindigen met het \-teken en "

Ja achter Backup_ had ik ook een backslash
 
Vreemd. Fout zou toch echt daar moeten zitten....
Iets anders dan een foutief pad kan ik helaas niet verzinnen.
 
Nee. Die klopt gewoon. Als er geen bestand meer gevonden worden, dan is de waarde van strFile leeg (="")
 
En waar wordt de routine DeleteBackUps() gestart?


Vreemd.... In m'n vorige post is het \-teken niet overgenomen, en ook na aanpassen verschijnt ie niet.
Geef het \-teken 2x in, dan zal hij wel verschijnen.
 
Laatst bewerkt:
Nee, die laatste regel was bedoeld voor Conseclusie. Als je een \ teken gebruik kan het zijn dat deze niet wordt weergegeven in de post. Als je er dan 2 plaatst wel.

Wat het andere probleem betreft zie ik in je code nergens een opdracht om de routine DeleteBackups te starten, dus nogal logisch dat deze niets doet.
 
Laatst bewerkt:
En wat moet ik precies als code gebruiken om de routine DeleteBackUps te starten?
 
Dat ligt eraan op wel moment je dat wilt doen.
 
Laatst bewerkt:
De Backup van het het bestand bijvoorbeeld "Test" die moet in een ander mapje BackupTest komen te staan als "Backup_Test". Deze backup moet ook opgeslagen worden als iemand Excel sluit zonder op te slaan. En na 7 dagen moet de backup automatisch verwijderd worden als hij niet meer word geopend.

De code die ik nu heb staat al in een bericht hierboven.
 
Dat was al duidelijk, maar ik wil graag weten op welk moment die routine dat moet doen. Is dat bij het openen van het bestand? Of bij het sluiten? Of bij een andere actie?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan