- Katılım
- 4 Haziran 2005
- Mesajlar
- 2,746
- Excel Vers. ve Dili
- 2010-2016
Kolay gelsin.
Aşağıdaki kodlarla yedek aldığım belgelerden 2 gün ve daha eski tarihli (dünden önceki belgeleri) evrakları siliyorum.
1- Bunun yerine örneğin son 10 kayıt dışındakileri silebilir miyim.
2- Mevcut günün öncesindeki günlerde yedek alınanlardan son 10 gün ve sadece en son kaydedilenleri bırakabilir miyim. Yani 10 gün öncesindeki tüm yedekleri silsin ve 10 gün içerisinde de günlük bir tane yedek kalsın. O da en son kaydedilen olsun.
Bu iki işlem ayrı ayrı işlem. Aynı örnek için değil.
Aşağıdaki kodlarla yedek aldığım belgelerden 2 gün ve daha eski tarihli (dünden önceki belgeleri) evrakları siliyorum.
1- Bunun yerine örneğin son 10 kayıt dışındakileri silebilir miyim.
2- Mevcut günün öncesindeki günlerde yedek alınanlardan son 10 gün ve sadece en son kaydedilenleri bırakabilir miyim. Yani 10 gün öncesindeki tüm yedekleri silsin ve 10 gün içerisinde de günlük bir tane yedek kalsın. O da en son kaydedilen olsun.
Bu iki işlem ayrı ayrı işlem. Aynı örnek için değil.
Kod:
Sub Dosya_Sil()
Dim Dosya As String, DosyaAd As String, yol As String
Dim Tar As Date, i As Integer, dz() As String
yol = ThisWorkbook.Path & "\Eski\"
Application.ScreenUpdating = False
If Right(yol, 1) <> "\" Then yol = yol & "\"
Dosya = Dir(yol)
If Dosya = "" Then MsgBox "Yanlış Dosya Yolu...": Exit Sub
Do While Dosya <> ""
If UCase(Dosya) Like "*.XL*" Then
i = i + 1
ReDim Preserve dz(1 To 2, 1 To i)
dz(1, i) = Dosya
dz(2, i) = FileDateTime(yol & Dosya)
If FileDateTime(yol & Dosya) > Tar Then
Tar = FileDateTime(yol & Dosya)
DosyaAd = Dosya
End If
End If
Dosya = Dir()
Loop
For i = 1 To UBound(dz, 2)
If Not dz(2, i) > Tar - 1 Then Kill yol & dz(1, i)
Next i
End Sub
