- Katılım
- 18 Ocak 2008
- Mesajlar
- 12,878
- Excel Vers. ve Dili
- 2003 excell türkçe
ve
2007 excell türkçe
Selamlar
aşağıdaki kodu kullanıyorum. bu kod ile ilgili olarak yedekleme yapmak için;
Dosyayı kaydettiğimde otomatik yedek alabilir mi?
teşekkürler
Uygar
Sub AKTİF_DOSYAYI_YEDEKLE()
Dim DosyaSistemi
Set DosyaSistemi = CreateObject("Scripting.FileSystemObject")
Dim Yedek_Dosya_Adı As String, Kayıt_Yeri As String
yer = "D:\YEDEK\"
For i = 1 To Len(ThisWorkbook.Name)
If Mid(ThisWorkbook.Name, i, 1) = "." Then
Dosya = Mid(ThisWorkbook.Name, 1, i - 1)
uzanti = Mid(ThisWorkbook.Name, i, Len(ThisWorkbook.Name))
End If
Next
ActiveWorkbook.Save
Application.DisplayAlerts = False
Yedek_Dosya_Adı = Dosya & Format(Now, " dd_mm_yyyy_hh_mm") & uzanti
Kayıt_Yeri = yer & Yedek_Dosya_Adı
On Error Resume Next
If Dir(yer) = "" Then MkDir yer
On Error Resume Next
DosyaSistemi.CopyFile ThisWorkbook.FullName, Kayıt_Yeri
MsgBox "Dosyanız aşağıdaki isimle yedeklenmiştir." & Chr(10) & Kayıt_Yeri, vbInformation, "Ajandam Uyarı Sistemi"
Application.DisplayAlerts = True
End Sub
Dosyayı her kayıt yaptığınızda yedeklemek için aşağıdaki kodu makrolar bölümünde ThisWorkbook sayfası içine koyup deneyiniz.
Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Dosya As String, Kayıt_Yeri As String, uzanti As String, dosyaadi As String, yer As String
yer = "D:\YEDEK\"
If CreateObject("Scripting.FileSystemObject").FolderExists(yer) = False Then
MkDir yer
End If
Dim fL As Object
Set fL = CreateObject("Scripting.FileSystemObject")
dosyaadi = ThisWorkbook.FullName
Dosya = fL.GetBaseName(dosyaadi)
uzanti = "." & fL.GetExtensionName(dosyaadi)
[COLOR=red]ActiveWorkbook.Save[/COLOR]
Application.DisplayAlerts = False
Kayıt_Yeri = yer & Dosya & Format(Now, " dd_mm_yyyy_hh_mm") & uzanti
fL.CopyFile ThisWorkbook.FullName, Kayıt_Yeri
MsgBox "Dosyanız aşağıdaki isimle yedeklenmiştir." & Chr(10) & Kayıt_Yeri, vbInformation, "U Y A R I"
Application.DisplayAlerts = True
End Sub
Bir komut düğmesi ile kayıt yapmak isterseniz aşağıdaki kodu kullanabilirsiniz.
Kod:
Sub AKTİF_DOSYAYI_YEDEKLE()
Dim Dosya As String, Kayıt_Yeri As String, uzanti As String, dosyaadi As String, yer As String
yer = "D:\YEDEK\"
If CreateObject("Scripting.FileSystemObject").FolderExists(yer) = False Then
MkDir yer
End If
Dim fL As Object
Set fL = CreateObject("Scripting.FileSystemObject")
dosyaadi = ThisWorkbook.FullName
Dosya = fL.GetBaseName(dosyaadi)
uzanti = "." & fL.GetExtensionName(dosyaadi)
ActiveWorkbook.Save
Application.DisplayAlerts = False
Kayıt_Yeri = yer & Dosya & Format(Now, " dd_mm_yyyy_hh_mm") & uzanti
fL.CopyFile ThisWorkbook.FullName, Kayıt_Yeri
MsgBox "Dosyanız aşağıdaki isimle yedeklenmiştir." & Chr(10) & Kayıt_Yeri, vbInformation, "U Y A R I"
Application.DisplayAlerts = True
End Sub
Not : yukarıdaki her iki uygulamada D sürücüsünün içinde YEDEK klasörünün içine kauıt yapıyor eğer YEDEK klasör yoksa D sürücüsünde kendisi bu klasörü oluşturuyor.
