DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Option Explicit
Sub SAYFA_YEDEKLE()
Dim Dosya_Sistemi As Object, K1 As Workbook, K2 As Workbook
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set Dosya_Sistemi = CreateObject("Scripting.FileSystemObject")
If Not Dosya_Sistemi.FolderExists("C:\YEDEK") Then
Dosya_Sistemi.CreateFolder ("C:\YEDEK")
End If
If Dir("C:\YEDEK\YEDEK.xls") = "" Then
Sheets("Sayfa1").Copy
Application.DisplayAlerts = False
ActiveSheet.Name = "Yedek_" & ActiveWorkbook.Sheets.Count
ActiveWorkbook.SaveAs Filename:="C:\YEDEK\YEDEK.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
Else
Set K1 = ThisWorkbook
Set K2 = Workbooks.Open("C:\YEDEK\YEDEK.xls")
K1.Sheets("Sayfa1").Copy , K2.Sheets(K2.Sheets.Count)
K2.Sheets(K2.Sheets.Count).Name = "Yedek_" & K2.Sheets.Count
K2.Close True
End If
Set K1 = Nothing
Set K2 = Nothing
Set Dosya_Sistemi = Nothing
MsgBox "İşleminiz tamamlanmıştır.", vbInformation
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Merhaba,
Dosyanızı açarken hata aldım. Bu sebeple inceleyemedim. Bende kendimce aşağıdaki kodu hazırladım. Sayfa ve dosya ismini kendinize göre değiştirirsiniz.
Yedeklenen sayfanın adı "Sayfa1" dir.
Yedekleme işlemi "C:YEDEK\" klasörüne yapılmaktadır. Klasörün olmaması kodun çalışmasına engel teşkil etmez. Klasör yoksa kod kendi oluşturur.
Dosya adı : YEDEK.xls
Sayfa ad : Yedek_1 (şeklinde devam ediyor...)
Kod:Option Explicit Sub SAYFA_YEDEKLE() Dim Dosya_Sistemi As Object, K1 As Workbook, K2 As Workbook Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set Dosya_Sistemi = CreateObject("Scripting.FileSystemObject") If Not Dosya_Sistemi.FolderExists("C:\YEDEK") Then Dosya_Sistemi.CreateFolder ("C:\YEDEK") End If If Dir("C:\YEDEK\YEDEK.xls") = "" Then Sheets("Sayfa1").Copy Application.DisplayAlerts = False ActiveSheet.Name = "Yedek_" & ActiveWorkbook.Sheets.Count ActiveWorkbook.SaveAs Filename:="C:\YEDEK\YEDEK.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close Else Set K1 = ThisWorkbook Set K2 = Workbooks.Open("C:\YEDEK\YEDEK.xls") K1.Sheets("Sayfa1").Copy , K2.Sheets(K2.Sheets.Count) K2.Sheets(K2.Sheets.Count).Name = "Yedek_" & K2.Sheets.Count K2.Close True End If Set K1 = Nothing Set K2 = Nothing Set Dosya_Sistemi = Nothing MsgBox "İşleminiz tamamlanmıştır.", vbInformation Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub
Option Explicit
Sub SAYFA_YEDEKLE()
Dim Dosya_Sistemi As Object, Sayfa_Adi As String, K1 As Workbook, K2 As Workbook
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set Dosya_Sistemi = CreateObject("Scripting.FileSystemObject")
If Not Dosya_Sistemi.FolderExists("C:\YEDEK") Then
Dosya_Sistemi.CreateFolder ("C:\YEDEK")
End If
Sayfa_Adi = ActiveSheet.Range("E2")
If Dir("C:\YEDEK\Maaş.xls") = "" Then
ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveSheet.Name = Sayfa_Adi
ActiveWorkbook.SaveAs Filename:="C:\YEDEK\Maaş.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.Close
MsgBox "Yedekleme işleminiz tamamlanmıştır.", vbInformation
Else
Set K2 = Workbooks.Open("C:\YEDEK\Maaş.xls")
If Sayfa_Varmi(Sayfa_Adi) = False Then
Set K1 = ThisWorkbook
K1.ActiveSheet.Copy , K2.Sheets(K2.Sheets.Count)
K2.Sheets(K2.Sheets.Count).Name = Sayfa_Adi
K2.Close True
MsgBox "Yedekleme işleminiz tamamlanmıştır.", vbInformation
Else
K2.Close True
MsgBox Sayfa_Adi & " isimli sayfayı daha önce yedeklemişsiniz. İşleminiz iptal edilmiştir.", vbCritical
End If
End If
Set K1 = Nothing
Set K2 = Nothing
Set Dosya_Sistemi = Nothing
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Function Sayfa_Varmi(Sayfa_Adi As String) As Boolean
On Error Resume Next
Sayfa_Varmi = CBool(Worksheets(Sayfa_Adi).Name > 0)
End Function
Aşağıdaki kodu deneyiniz.
Kod:Option Explicit Sub SAYFA_YEDEKLE() Dim Dosya_Sistemi As Object, Sayfa_Adi As String, K1 As Workbook, K2 As Workbook Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set Dosya_Sistemi = CreateObject("Scripting.FileSystemObject") If Not Dosya_Sistemi.FolderExists("C:\YEDEK") Then Dosya_Sistemi.CreateFolder ("C:\YEDEK") End If Sayfa_Adi = ActiveSheet.Range("E2") If Dir("C:\YEDEK\Maaş.xls") = "" Then ActiveSheet.Copy Application.DisplayAlerts = False ActiveSheet.Name = Sayfa_Adi ActiveWorkbook.SaveAs Filename:="C:\YEDEK\Maaş.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False ActiveWindow.Close MsgBox "Yedekleme işleminiz tamamlanmıştır.", vbInformation Else Set K2 = Workbooks.Open("C:\YEDEK\Maaş.xls") If Sayfa_Varmi(Sayfa_Adi) = False Then Set K1 = ThisWorkbook K1.ActiveSheet.Copy , K2.Sheets(K2.Sheets.Count) K2.Sheets(K2.Sheets.Count).Name = Sayfa_Adi K2.Close True MsgBox "Yedekleme işleminiz tamamlanmıştır.", vbInformation Else K2.Close True MsgBox Sayfa_Adi & " isimli sayfayı daha önce yedeklemişsiniz. İşleminiz iptal edilmiştir.", vbCritical End If End If Set K1 = Nothing Set K2 = Nothing Set Dosya_Sistemi = Nothing Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub Function Sayfa_Varmi(Sayfa_Adi As String) As Boolean On Error Resume Next Sayfa_Varmi = CBool(Worksheets(Sayfa_Adi).Name > 0) End Function
Bahsettiğiniz satırı düzenlemeniz yeterli olur...
Korhan Hocam İlk sayfa yedeklemesi yapıyor. fakat daha sonra e2 hücresini değiştirdiğimde yani başka bir ay seçtiğimde 400 hatası verip yedekleme yapmıyor.Bir de bu yedeklemede formülleri dikkate almasa iyi olur. yani kopyala-özel yapıştır-değerler şeklinde nasıl bir düzenleme yapılabilir.Bahsettiğiniz satırı düzenlemeniz yeterli olur...
Korhan Hocam İlk sayfa yedeklemesi yapıyor. fakat daha sonra e2 hücresini değiştirdiğimde yani başka bir ay seçtiğimde 400 hatası verip yedekleme yapmıyor.Bir de bu yedeklemede formülleri dikkate almasa iyi olur. yani kopyala-özel yapıştır-değerler şeklinde nasıl bir düzenleme yapılabilir.