Userformdan Korumalı Sayfaya Veri Kaydetme Hakkında

1 2
22/02/2021, 10:47

Oğuz Türkyılmaz

Merhaba Herkese sağlıklı günler dilerim.
Excel dosyamda Userform üzerinden Ana Sayfa sekmesindeki tabloya veri kaydediyorum. Yapmak isteyip de çözemediğim şey Ana Sayfa sekmesine sayfa koruma koymak istiyorum fakat koyduğumda Userform üzerinden kayıt yaptırmıyor haliyle. Korumalı bir sayfaya userform üzerinden kayıt eklemenin ve bu korumalı sayfada istendiğinde verileri filtreletmenin bir yolu var mı? Teşekkürler.
22/02/2021, 21:32

atoykan

Form açılırken sayfa korumasını kod ile kaldırın işlem bitince yeniden korumaya alın. Arşivimde benzer konuya ilişkin eski bir kod buldum, benzer bir yapı uygulayabilirsiniz.

Const PW As String = "password" '<-password yazan yere şifrenizi uygulayın
On Error GoTo exit_proc
With ActiveSheet
.Unprotect PW
    .ShowDataForm
exit_proc:
    .Protect PW
    End With
End Sub

veya userinterface özeliğinden aşağıdakine benzer bir kod ile fayda sağlayabilirsiniz.

Private Sub Workbook_Open()
Dim wks As Worksheet
    For Each wks In ActiveWorkbook.Worksheets
      wks.Protect , UserInterfaceOnly:=True
    Next wks
End Sub
22/02/2021, 23:09

feraz

ThisWorkbook.Worksheets("Ana Sayfa").Unprotect "sifre"
Kayıt ekleme kodunu ılk satırına yukardaki end sub tan önceki satırada alttaki kodu ekleyin.Tabii sifre yerine istediğiniz yazılacak.
ThisWorkbook.Worksheets("Ana Sayfa").Protect "sifre"
23/02/2021, 11:01

Oğuz Türkyılmaz

(22/02/2021, 23:09)feraz yazdı:
ThisWorkbook.Worksheets("Ana Sayfa").Unprotect "sifre"
Kayıt ekleme kodunu ılk satırına yukardaki end sub tan önceki satırada alttaki kodu ekleyin.Tabii sifre yerine istediğiniz yazılacak.
ThisWorkbook.Worksheets("Ana Sayfa").Protect "sifre"

Feraz Bey çok teşekkür ederim. Gayet basitçe hallolmuş.Sağolun.

(22/02/2021, 21:32)atoykan yazdı: Form açılırken sayfa korumasını kod ile kaldırın işlem bitince yeniden korumaya alın. Arşivimde benzer konuya ilişkin eski bir kod buldum, benzer bir yapı uygulayabilirsiniz.

Const PW As String = "password" '<-password yazan yere şifrenizi uygulayın
On Error GoTo exit_proc
With ActiveSheet
.Unprotect PW
    .ShowDataForm
exit_proc:
    .Protect PW
    End With
End Sub

veya userinterface özeliğinden aşağıdakine benzer bir kod ile fayda sağlayabilirsiniz.

Private Sub Workbook_Open()
Dim wks As Worksheet
    For Each wks In ActiveWorkbook.Worksheets
      wks.Protect , UserInterfaceOnly:=True
    Next wks
End Sub

Dediğiniz gibi Feraz hocamın kodu işi çözdü. Sağolun.
23/02/2021, 16:49

feraz

Rica ederiz abey.Kayıt ekleme,sil vs.. için tek tek eklemektense bir modüldeki sub içine unprotect olanı başka bir sub içinede protect olanı eklerseniz kodu çağırırken basit olur.Tabii workbook.open içinede yazarsanız açılışta kilitlenir abey.Biraz karışık anlattım ama durum bu
23/02/2021, 16:58

feraz

Yani boş bir modüle alttaki gibi eklerseniz
Çağırken kilitac  ve kilitle olarak çağırabilirsiniz kodların ilgili yerlerine
Belki mobilden hatalı yazmış olabilirim

Public Sub kilitle()
ThisWorkbook.Worksheets("Ana Sayfa").protect "sifre"
End sub

Public Sub kilitac()
ThisWorkbook.Worksheets("Ana Sayfa").Unprotect "sifre"
End sub
1 2