KORUMALI SAYFAYA VERİ GİRİLEMİYOR.

Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
KORUMALI SAYFAYA VERÝ GÝRÝLEMÝYOR.

Arkadaşlar, UserForm larla yaptığım bir proğramda 13 sayfa veri girişi yapmaktayım. Bu 13 sayfaya da sayfa koruması ve çalışma sayfası koruması koydum. Ancak, proğramı çalıştırıp veri girişi yaptığımda korumalı olduğu uyarısı veriyor. Ne yapmam lazım.

ayrıca, arka planda excel sayfasının hiç görünmemesini istiyorum. Zira çalışma sayfası ile bir işim yok. Yani tamamen UserFormlarla işimi yapabiliyorum.
Site de bu konuda araştırma yaptım ve Tarkan bey`e ait aşağıdaki kodları buldum.
Workbook sayfasına :

Private Sub Workbook_Open()
Application.Visible=False
Userform.Show
End sub

Userform sayfasına

Private Sub UserForm_Terminate()
Application.Visible=True
End Sub
Yukarıdaki kodda Private Sub UserForm_Terminate() olayına Application.Visible=True olarak yazılmasının açıklamasını da öğrenmek istiyorum. Þimdiden teşekkür eder. Çalışmalarınızda başarılar dilerim.
 
Katılım
8 Haziran 2005
Mesajlar
114
1-) Terminate ile User Form Sonlandığında işlem yapılır.

2-) Application.Visible=True
Uygulamının görünümü = Olumlu

3-) Kodlarınızın çalışması esnasında şifreyi açın çalışma bitince kapatın.

Büyük ihtimalle = Protect komutu ile korumaya alınmıştır. Unprotect ile şifreyi açabilirsiniz.

Kod:
Sub kodlarim()
Sheets(1).UnProtect "1234ab" 'korumayı kaldırdınız.
'burada siin kodlarınız.
Sheets(1).Protect "1234ab" 'korumaya aldınız
End sub
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın, VisualBasic
Sub kodlarim()
Sheets(1).UnProtect "1234ab" 'korumayı kaldırdınız.
'burada siin kodlarınız.
Sheets(1).Protect "1234ab" 'korumaya aldınız
End sub
yukarıdaki kod da yer alan Sheets(1).UnProtect ve Sheets(1).Protect kodlarını tam olarak nereye yazmam lazım. Biraz daha açıklayabilinmisiniz. Zira 7 adet Userform var. Ayrıca, sayfa korumasını araçlar---sayfayı koru şeklinde excel sayfasından yaptım. Demek istediğinizi tam olarak anlayamadım. Teşekkürler.
 
Katılım
8 Haziran 2005
Mesajlar
114
Sorununuzu çözecek kodları yazmıştım, 7 adet Formdan bahsederseniz işler ibraz değişir. Detaylandıralım:

herhangi bir modüle yazılacak kodlarınız

Kod:
Sub Ac() 
Sheets(1).UnProtect "1234ab" 'Þifrenizi yazın burada 1234ab
End sub

Sub Kapa() 
Sheets(1).Protect "1234ab" 'Aynı şifrenizi yazın burada 1234ab
End sub
Hangi makroda iken şifrenin kalkmasını istiyorsanız oraya,

Kodun en başına
Ac (Sub Ac () makrosu çağrıldı.)
Kodun en sonuna
Kapa (Sub Kapa () makrosu çağrıldı.)

yazdığınızda sorun çözülecektir.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın, VisualBasic
her kodun başına :Sheets(1).UnProtect "1234ab" ve sonuna da Sheets(1).Protect "1234ab" yazdım. Mükemmel çalıştı. Ancak, bu işlemi her kodun başına ve sonuna yazmak yerine başka bir çözüm yolu olabilirmi? Zira çok fazla kod var. İlginiz için tekrar teşekkür eder. Çalışmalarınızda başarılar dilerim.
 
Katılım
8 Haziran 2005
Mesajlar
114
Kodlarınızın tetiklediği events lar varsa çözüm bulunabilir. Artık kodlarınızı görmeden çözüm imkansız!
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın, VisualBasic , işi çözdüm aşağıdaki kodu 7 adet UserForma ekledim. Form açıldığında sayfa koruması kaldırılıyor ve böylece sayfaya veri girişi yapabiliyorsunuz. form kapandığında ise sayfa koruması tekrar aktif oluyor. Böylece kısa kod yazarak işi çözmüş oldum. İlginize teşekkürler.
Private Sub UserForm_Activate()
Sheets(1).Unprotect "1234ab"
birden fazla sayfayıda ekleyebiliriz.............
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Sheets(1).Protect "1234ab"
birden fazla sayfayıda ekleyebiliriz...............
End Sub

Ayrıca görüşlerinizi bekliyorum. Selamlar
 
Katılım
8 Haziran 2005
Mesajlar
114
Tüm sayfaların şifresi aynı olacaksa, bir döngü ile,
Farklı olacaksa döngü + Collection yada Array ile çözümlenebilir.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın VisualBasic, tüm sayfaların şifresi aynı olacak. Bu durumda nasıl yapabiliriz. Ayrıca, Unprotect ve protect komutlarını userforma koydum sonuç olumlu oldu. Bu bağlamda, önerinizi bekliyorum. Selamlar.
 
Katılım
8 Haziran 2005
Mesajlar
114
VAS;

Kod:
Sub Sifrele()
  Dim int1 As Integer
  For int1 = 1 To Worksheets.Count
    Sheets(int1).Protect "1234ab"
  Next int1
End Sub

Sub SifreleME()
  Dim int1 As Integer
  For int1 = 1 To Worksheets.Count
    Sheets(int1).Unprotect "1234ab"
  Next int1
End Sub
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın VisualBasic, bu kodları bir modüle yazmam yeterlimi?
 
Katılım
8 Haziran 2005
Mesajlar
114
Bundan önce verdiğim cevaptaki gibi kullanabilirsiniz.

Kodları Modüllerden birine aynen kopyalayınız. Daha önceki şifreleme kodlarını siliniz.
Kodların nerede çalışmasını istiyorsanız orada çağırın.

Siz kodlarınızın başı ve sonunda istiyordunuz o zaman;

Kod:
Sub BenimDigerKodum()
SifreleME ' Þifreleri açtık (SifreleME diye bir makromuz vardı ya onu çağırdık çalıştı gitti)
msgbox "Burada sizin diğer kodlarınız var"
Sifrele' Yeniden Þifreledik (Sifrele diye bir makromuz vardı ya onu çağırdık çalıştı gitti)
EndSub
Kodlarınızın UserForm ve Form nesneleri yada Sub veya Private Sub (Public,Static v.b....) ile başlaması hiçbirşeyi değiştirmez kullanımı böyledir.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın VisualBasic, teşekkür ederim. Sevgiyle kalın. Her şey gönlünüzce olsun. :D
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Herkese selamlar, :hey:
Private Sub UserForm_Initialize()
Dim int1 As Integer
For int1 = 1 To Worksheets.Count
Sheets(int1).Protect "1234"
Next int1
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim int1 As Integer
For int1 = 1 To Worksheets.Count
Sheets(int1).Unprotect "1234"
Next int1
End Sub
Sayın VisualBasic`in yukarıdaki kodlarını 13 adet UserForma bu şekilde yazarak yine 13 sayfanın korumasının açılıp, form kapanınca sayfa korumasının da kapanmasını yapmak istiyorum. Çünkü bir form birden fazla sayfaya veri aktarıyor veya alıyor. Bunun için bütün sayfaları tanıtacak kod satırına ihtiyacım var. Ne yapmam lazım bir türlü çözemedim. Teşekkürler.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
bu şekilde yazılıysa form açıkken sayfaları kitliyorsunuz, form kapalıyken sayfaları açıyorsunuz, kodları tam ters olaylara yazmışsınız
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın veyselemre, çok haklısınız dikkatimden kaçmış :kafa: Uyarınız için çok teşekkürler.
Uyarınız doğrultusunda değişikliği yaptım ve çalışıyor. Çok teşekkür ederim. Saygılar.
 
Üst