• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
590
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,606
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