Dosyadan Çıkarken Otomatik Yedeklemek

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
566
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
Merhabalar

Ekteki dosya çıkışta, günün tarihi ile birlikte xlsb olarak masaüstüne yedek oluşturmaktadır.

Şu üç değişikliği yapabilir miyiz,

--Xlsb değil, Xlsm olarak kaydetsin.
(FileFormat:=xlOpenXMLWorkbookMacroEnabled olarak denedim olmadı)

--Yedeklenen dosyayı masaüstüne değil, orjinal dosyanın bulunduğu konuma kaydetsin.

--Aynı gün içinde birden çok dosyadan çıkış yaptığımız için gün, ay, yıl, saat dakika saniye ile adlandırarak dosyalar oluştursun.

Teşekkürler
 

Ekli dosyalar

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
745
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba, deneyiniz.

C++:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim DosyaAdi As String
    DosyaAdi = Format(Now, "dd.mm.yyyy hh.mm.ss") & ".xlsm"
    ThisWorkbook.SaveAs ThisWorkbook.Path & "\" & DosyaAdi, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Aşağıdaki kod ile Aynı dizine Yedek klasörü oluşturulue ve kayıt yapılırken başına dosya adı gelir.
örnek dosya (11.03.2023 10.32.31)

C++:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim DosyaAdi As String, YedekKlasoru As String, YedekDosyaAdi As String
    YedekKlasoru = ThisWorkbook.Path & "\Yedek\"
    If Len(Dir(YedekKlasoru, vbDirectory)) = 0 Then ' Yedek klasörü yoksa oluştur
        MkDir YedekKlasoru
    End If
    DosyaAdi = Replace(Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1), ".", "_")
    DosyaAdi = DosyaAdi & " (" & Format(Now(), "dd.mm.yyyy hh.mm.ss") & ")" & ".xlsm"
    YedekDosyaAdi = YedekKlasoru & DosyaAdi
    ThisWorkbook.SaveAs Filename:=YedekDosyaAdi, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
 
Son düzenleme:

hakki83

Altın Üye
Katılım
30 Eylül 2021
Mesajlar
566
Excel Vers. ve Dili
Excel 2016 Türkçe 32 Bit
Altın Üyelik Bitiş Tarihi
30-09-2026
RBozkurt hocam sağ olunuz. Emeklerinize sağlık.
 
Üst