Avatar billede folj Forsker
09. januar 2007 - 13:47 Der er 4 kommentarer og
1 løsning

slette gamle filer med vba-kode

Hej eksperter !

Jeg laver nogle daglige backups med vba-kode ved hjælp af:
  ActiveWorkbook.SaveCopyAs BackupMappe & BackupFilnavn

Nu vil jeg gerne på tilsvarende vis slette gamle backupfiler der er ældre end 30 dage. Jeg har lavet en lille sub i vba
Sub EraseBackUp(Mappe As String)

Dim i As Integer
Dim Offset As Integer

    For i = 0 To 10
    Offset = 30 + i
    SletBackupFilnavn = "AutoKopi_" & Format(Now - Offset, "YYYYMMDD") & ".xls"
      ' her mangler jeg så en funktion der tjekker om filnavn findes, og hvis ja så slettes filen
      '  MsgBox "Filen " & Mappe & SletBackupFilnavn & " slettet"
    Next
End Sub

kan det lade sig gøre fra det åbne excelark ?
Avatar billede kabbak Professor
09. januar 2007 - 13:53 #1
Dim i As Integer
Dim Offset As Integer

For i = 0 To 10
    Offset = 30 + i
    SletBackupFilnavn = "AutoKopi_" & Format(Now - Offset, "YYYYMMDD") & ".xls"
    If Dir("C:\data\" & SletBackupFilnavn) <> "" Then
        Kill ("C:\data\" & SletBackupFilnavn)
        MsgBox "Filen " & Mappe & SletBackupFilnavn & " slettet"
    End If
Next
End Sub
Avatar billede kabbak Professor
09. januar 2007 - 13:53 #2
Husk at rette stien
Avatar billede kabbak Professor
09. januar 2007 - 13:55 #3
en lille rettelse

Dim i As Integer
Dim Offset As Integer
Mappe = "C:\data\"
For i = 0 To 10
    Offset = 30 + i
    SletBackupFilnavn = "AutoKopi_" & Format(Now - Offset, "YYYYMMDD") & ".xls"
    If Dir(Mappe & SletBackupFilnavn) <> "" Then
        Kill (Mappe & SletBackupFilnavn)
        MsgBox "Filen " & Mappe & SletBackupFilnavn & " slettet"
    End If
Next
End Sub
Avatar billede folj Forsker
09. januar 2007 - 14:13 #4
Tak for svaret...

Jeg skal bare lige ha' det skåret lidt mere ud i pap...

Vil det sige at jeg ikke kan bruge min:
Sub EraseBackUp(Mappe As String)
kode...
End Sub

og så kalde den med:
Sub TestSlet()
Dim BackupMappe As String
BackupMappe = "C:\backup af xls_ark\"
EraseBackUp (BackupMappe)
End Sub

kan denne opbygning ikke lade sig gøre ?
Avatar billede kabbak Professor
09. januar 2007 - 14:50 #5
Sub EraseBackUp(Mappe As String)
Dim i As Integer
Dim Offset As Integer
For i = 0 To 10
    Offset = 30 + i
    SletBackupFilnavn = "AutoKopi_" & Format(Now - Offset, "YYYYMMDD") & ".xls"
    If Dir(Mappe & SletBackupFilnavn) <> "" Then
        Kill (Mappe & SletBackupFilnavn)
        MsgBox "Filen " & Mappe & SletBackupFilnavn & " slettet"
    End If
Next
End Sub

jo du kan, jeg havde ikke set toppen af subben
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester