Yedek alma işleminde düzeltme

acebeci

Altın Üye
Katılım
25 Ağustos 2007
Mesajlar
326
Excel Vers. ve Dili
ofis excel 2010 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2026
Değerli büyüklerim Üstadlarım daha önce sizlerin yardımı ile oluşturduğumuz aşağıda kodla dosyamı kapatırken yedek alıp almayacağımı soruyor ve eğer istersem Dosyanın Yedeğini alıyorum bu gerçekten çok işime yarıyor yalnız şöyle bir sorun oldu dosyayı kapatırken yedek almak istesem de istemesem de dosyada yapılan değişiklikleri mutlaka kaydediyor bazen değişiklikleri kaydetmeden çıkmam gerekiyor acaba bu kodlarda bir düzeltme yapılabilir mi? bu konuda yardımcı olabilir misiniz?

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

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Koddaki ThisWorkbook.Save satırı, dosyanın kapatılmadan önce kaydedilmesini sağlıyor ....

.
 

acebeci

Altın Üye
Katılım
25 Ağustos 2007
Mesajlar
326
Excel Vers. ve Dili
ofis excel 2010 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2026
Sayın Haluk Aynen dediğiniz gibi o satırı sildim şimdi halloldu.İlginizden doğayı Çok teşekkür ederim
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Rica ederim....

Alternatif olarak, aşağıdaki kodu da kullanabilirsiniz.

Kod:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Dir("D:\YEDEKLER", vbDirectory) = "" Then MkDir "D:\YEDEKLER"
    If ThisWorkbook.Path = "D:\YEDEKLER" Then Exit Sub
    If MsgBox("Dosyanın yedeğini almak istiyor musun?", vbInformation + vbYesNo, "DURUM") = vbYes Then
        ThisWorkbook.SaveAs "D:\YEDEKLER\" & Replace(Now, ":", "_") & "-" & ThisWorkbook.Name
    End If
End Sub
.
 

acebeci

Altın Üye
Katılım
25 Ağustos 2007
Mesajlar
326
Excel Vers. ve Dili
ofis excel 2010 türkçe
Altın Üyelik Bitiş Tarihi
03-11-2026
Sayın Haluk çok çok teşekkür ederim tam işimi gördü sağ olun var olun
 
Üst