VBA Kod yardımı

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
840
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Merhabalar,

Ekli kod yardımı ile Excel çalışma sayfasının yedeğini alıyorum. Yedeği "C:\YEDEKLER" Klasörüne kaydediyor. İstediğim yedek alınan günü "C:\YEDEKLER\16.07.2021\" şeklinde klasör oluşturması mümkün mü ?

Kod:
Sub yedekle()
    Dim FSO As Object, Yol As String, Klasor As Object
    Dim Dosya_Adi As String, Dosya As Object, Tarih As Date
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    ThisWorkbook.Save
    
    Yol = "C:\YEDEKLER"

    If FSO.FolderExists(Yol) = False Then
        FSO.CreateFolder Yol
    Else
        Set Klasor = FSO.GetFolder(Yol)
        
        For Each Dosya In Klasor.Files
            If Left(Dosya.Name, 1) <> "~" Then
                Tarih = Split(Dosya.Name, " ")(0)
                If Tarih < Date - 2 Then
                    Dosya.Delete
                End If
            End If
        Next
    End If
    
    If ThisWorkbook.Path = Yol Then Exit Sub
    
    If MsgBox("Dosyanın yedeğini almak istiyor musun?", vbInformation + vbYesNo, "DURUM") = vbYes Then
        Dosya_Adi = Yol & Application.PathSeparator & Replace(Now, ":", "_") & "-" & ThisWorkbook.Name
        FSO.CopyFile ThisWorkbook.FullName, Dosya_Adi
    End If

    Set Klasor = Nothing
    Set FSO = Nothing
End Sub
Yardımlarınız için teşekkür ederim.
 

muratboz06

Destek Ekibi
Destek Ekibi
Katılım
23 Mart 2017
Mesajlar
568
Excel Vers. ve Dili
Office365 TR
Deneyiniz.
Kod:
Sub yedekle()
    Dim FSO As Object, Yol As String, Klasor As Object
    Dim Dosya_Adi As String, Dosya As Object, Tarih As Date
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    ThisWorkbook.Save
    Call YedekKlasoruOlustur
    Yol = "C:\YEDEKLER\" & Format(Date, "dd.mm.yyyy") & "\"

    If FSO.FolderExists(Yol) = False Then
        FSO.CreateFolder Yol
    Else
        Set Klasor = FSO.GetFolder(Yol)
        
        For Each Dosya In Klasor.Files
            If Left(Dosya.Name, 1) <> "~" Then
                Tarih = Split(Dosya.Name, " ")(0)
                If Tarih < Date - 2 Then
                    Dosya.Delete
                End If
            End If
        Next
    End If
    
    If ThisWorkbook.Path = Yol Then Exit Sub
    
    If MsgBox("Dosyanın yedeğini almak istiyor musun?", vbInformation + vbYesNo, "DURUM") = vbYes Then
        Dosya_Adi = Yol & Application.PathSeparator & Replace(Now, ":", "_") & "-" & ThisWorkbook.Name
        FSO.CopyFile ThisWorkbook.FullName, Dosya_Adi
    End If

    Set Klasor = Nothing
    Set FSO = Nothing
End Sub

Public Sub YedekKlasoruOlustur()
    On Error GoTo Son
    MkDir ("C:\YEDEKLER\" & Format(Date, "dd.mm.yyyy"))
Son:

End Sub
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,488
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Yol = "C:\YEDEKLER"

satırını aşağıdaki gibi değiştirin

Yol = "C:\YEDEKLER1\" & Date
MkDir Yol
 

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
840
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Deneyiniz.
Kod:
Sub yedekle()
    Dim FSO As Object, Yol As String, Klasor As Object
    Dim Dosya_Adi As String, Dosya As Object, Tarih As Date
   
    Set FSO = CreateObject("Scripting.FileSystemObject")
   
    ThisWorkbook.Save
    Call YedekKlasoruOlustur
    Yol = "C:\YEDEKLER\" & Format(Date, "dd.mm.yyyy") & "\"

    If FSO.FolderExists(Yol) = False Then
        FSO.CreateFolder Yol
    Else
        Set Klasor = FSO.GetFolder(Yol)
       
        For Each Dosya In Klasor.Files
            If Left(Dosya.Name, 1) <> "~" Then
                Tarih = Split(Dosya.Name, " ")(0)
                If Tarih < Date - 2 Then
                    Dosya.Delete
                End If
            End If
        Next
    End If
   
    If ThisWorkbook.Path = Yol Then Exit Sub
   
    If MsgBox("Dosyanın yedeğini almak istiyor musun?", vbInformation + vbYesNo, "DURUM") = vbYes Then
        Dosya_Adi = Yol & Application.PathSeparator & Replace(Now, ":", "_") & "-" & ThisWorkbook.Name
        FSO.CopyFile ThisWorkbook.FullName, Dosya_Adi
    End If

    Set Klasor = Nothing
    Set FSO = Nothing
End Sub

Public Sub YedekKlasoruOlustur()
    On Error GoTo Son
    MkDir ("C:\YEDEKLER\" & Format(Date, "dd.mm.yyyy"))
Son:

End Sub
Emeğinize sağlık, teşekkür ederim.
 

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
840
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Merhaba,

Yol = "C:\YEDEKLER"

satırını aşağıdaki gibi değiştirin

Yol = "C:\YEDEKLER1\" & Date
MkDir Yol
Emeğinize sağlık, teşekkür ederim.
 
Üst