- Katılım
- 17 Ocak 2009
- Mesajlar
- 3
- Excel Vers. ve Dili
- 2003 türkçe
örneğin sayfa 1 de macrolarınız var ve bu macrolar excel çalışma sayfanızın başkaları tarafından kopyalanmaması ve çalınmamasını istiyorsunuz.
Ancak macro güvenliği yüksek olarak ayarlanmış excel programında, macrolar devre dışı kaldığından çalışmanız başkaları tarafından tamamen görülebilir.
Ben bu sorunu şu şekilde hallettim...
1) VBAProject properties'ten şifre oluşturarak macrolarınızı gizleyin
2)ThisWorkbook kısmına aşağıdaki kodu ekleyin.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Bu kod satırları Cihan BAYDAR tarafından geliştirilmiştir.
On Error Resume Next
cevap = MsgBox("Yaptığınız değişiklikler Kaydedilsinmi?", 3 + 32 + 0, "Çıkış")
If cevap = 6 Then
Sheets("Sayfa İsmi").Visible = False
ActiveWorkbook.Protect ["şifre"], Structure:=True, Windows:=True
ActiveWorkbook.Save
Cancel = False
ElseIf cevap = 7 Then
Application.DisplayAlerts = False
Application.Quit
Else
Cancel = True
End If
End Sub
Private Sub Workbook_Open()
'Bu kod satırları Cihan BAYDAR tarafından geliştirilmiştir.
On Error Resume Next
ActiveWorkbook.Unprotect ["şifre"]
Sheets("Sayfa İsmi").Visible = True
Sheets("Sayfa İsmi").Select
End Sub
Not1: "şifre" yazan kısma istediğiniz şifreyi(tırnak işareti içinde. Örneğin: "1234") girebilirsiniz. Ancak şifrenizi uzun tutmanızda ve çok çeşitli karakterler kullanmanızda(ör:®, ¢,*Ì,Ó,ß vb..) faydavar. Bu şekilde çeşitli şifre programları ile şifrenizin kırılması zorlaşır, yani süre uzar ve bir çok kullanıcı vazgeçer
Not2:"Sayfa İsmi" yazan kısma korumak istediğiniz sayfanın adını yazın (tırnak işareti içinde. Örneğin: "veriler").
Not3: Sheets("Sayfa İsmi").Visible = True ve ActiveWorkbook.Protect ["şifre"], Structure:=True, Windows:=True satırlarını istediğiniz kadar çoğaltarak tüm korumak istediğiniz sayfaları çoğaltabilirsiniz.
Yukarıda yazdığım şekilde yaparsanız excel çalışma kitabınız macrolar etkin olmadan açıldığında boş bir çalışma sayfası olarak gözükecek ve gizlediğiniz sayfayı şifre olmadan açamayacaktır.
Ancak macro güvenliği yüksek olarak ayarlanmış excel programında, macrolar devre dışı kaldığından çalışmanız başkaları tarafından tamamen görülebilir.
Ben bu sorunu şu şekilde hallettim...
1) VBAProject properties'ten şifre oluşturarak macrolarınızı gizleyin
2)ThisWorkbook kısmına aşağıdaki kodu ekleyin.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Bu kod satırları Cihan BAYDAR tarafından geliştirilmiştir.
On Error Resume Next
cevap = MsgBox("Yaptığınız değişiklikler Kaydedilsinmi?", 3 + 32 + 0, "Çıkış")
If cevap = 6 Then
Sheets("Sayfa İsmi").Visible = False
ActiveWorkbook.Protect ["şifre"], Structure:=True, Windows:=True
ActiveWorkbook.Save
Cancel = False
ElseIf cevap = 7 Then
Application.DisplayAlerts = False
Application.Quit
Else
Cancel = True
End If
End Sub
Private Sub Workbook_Open()
'Bu kod satırları Cihan BAYDAR tarafından geliştirilmiştir.
On Error Resume Next
ActiveWorkbook.Unprotect ["şifre"]
Sheets("Sayfa İsmi").Visible = True
Sheets("Sayfa İsmi").Select
End Sub
Not1: "şifre" yazan kısma istediğiniz şifreyi(tırnak işareti içinde. Örneğin: "1234") girebilirsiniz. Ancak şifrenizi uzun tutmanızda ve çok çeşitli karakterler kullanmanızda(ör:®, ¢,*Ì,Ó,ß vb..) faydavar. Bu şekilde çeşitli şifre programları ile şifrenizin kırılması zorlaşır, yani süre uzar ve bir çok kullanıcı vazgeçer
Not2:"Sayfa İsmi" yazan kısma korumak istediğiniz sayfanın adını yazın (tırnak işareti içinde. Örneğin: "veriler").
Not3: Sheets("Sayfa İsmi").Visible = True ve ActiveWorkbook.Protect ["şifre"], Structure:=True, Windows:=True satırlarını istediğiniz kadar çoğaltarak tüm korumak istediğiniz sayfaları çoğaltabilirsiniz.
Yukarıda yazdığım şekilde yaparsanız excel çalışma kitabınız macrolar etkin olmadan açıldığında boş bir çalışma sayfası olarak gözükecek ve gizlediğiniz sayfayı şifre olmadan açamayacaktır.
Son düzenleme:
