Yedek Almak

1 2
04/03/2021, 17:10

m_demir

Merhaba Arkadaşlar

Eklediğim kodlarla Excel kitabını kapattığım zaman kayıt yapıyor ve C nin altındaki yedek klasörüne yedek alıyor.

Yedek aldığı zaman aynı Excel kitabından 2 tane yedek alıyor. 1 tane yedek almam için kodda nasıl bir değişiklik yapmam gerekiyor.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'Private Sub Workbook_BeforeClose(Cancel As Boolean)'Oyomatik yedekleme başı
Set ds = CreateObject("Scripting.FileSystemObject")
'ThisWorkbook.Save
ActiveWorkbook.Save
If ds.FolderExists("C:\Yedek") = False Then
ds.CreateFolder "C:\Yedek"
End If
If ThisWorkbook.Path = "C:\Yedek" Then Exit Sub
'If MsgBox("Dosyanın yedeğini almak istiyor musunuz?", vbInformation + vbYesNo, "DURUM") = vbYes Then
yol = "C:\Yedek\" & Replace(Now, ":", "_") & "-" & ThisWorkbook.Name
ds.CopyFile ThisWorkbook.FullName, yol
'End If 'Oyomatik yedekleme sonu

ActiveWorkbook.Save
Application.Quit

End Sub
04/03/2021, 17:53

feraz

Kod:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
kodları silip 
Kod:
Sub Auto_Close
kodlarını alttaki gibi yapıp deneyin.Yani o kodları Sub Auto_Close içine yazın sadece.

Sub Auto_Close()
Set ds = CreateObject("Scripting.FileSystemObject")
'ThisWorkbook.Save
    ActiveWorkbook.Save
If ds.FolderExists("C:\Yedek") = False Then ds.CreateFolder "C:\Yedek"
If ThisWorkbook.Path = "C:\Yedek" Then Exit Sub
'If MsgBox("Dosyanýn yedeðini almak istiyor musunuz?", vbInformation + vbYesNo, "DURUM") = vbYes Then
yol = "C:\Yedek\" & Replace(Now, ":", "_") & "-" & ThisWorkbook.Name
ds.CopyFile ThisWorkbook.FullName, yol
'End If 'Oyomatik yedekleme sonu

ActiveWorkbook.Save
Application.Quit
End Sub
04/03/2021, 20:59

m_demir

Hocam dediğiniz gibi yaptım. C:\ nin altında Yedek klasörü oluşturmuyor. Yedek oluşturmuyor.
04/03/2021, 21:06

feraz

(04/03/2021, 20:59)m_demir yazdı: Hocam dediğiniz gibi yaptım. C:\ nin altında Yedek klasörü oluşturmuyor.  Yedek oluşturmuyor.
Kodlar sizin zaten abey bende oluşturuyordu.
Zaten kodda o klasör yoksa oluştur kodu var.
Modül içinde olacak auto_close

(04/03/2021, 17:53)feraz yazdı: If ds.FolderExists("C:\Yedek") = False Then ds.CreateFolder "C:\Yedek"
Bu kod demek eğer C sürücüde Yedek adında klasör yoksa oluşturur
04/03/2021, 21:14

feraz

Yada şöyle deneyin.sub auto_close kodunu silin workbookclose kodu kalsın.
Ben deneyemedim çünkü bazen benim excelde bu çalışma kitabının kod bölümüne giremiyorum ne hikmetse Ve alttaki kodlar çalışmıyor bende bazen.O yüzden auto_close içine aldım.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
04/03/2021, 21:36

m_demir

Çok teşekkürler Hocam ellerinize sağlık.

Hocam konuyu taşıyabilirsiniz. Saygılarımla.
1 2