Soru Tüm Sayfaları aynı anda KİLİTLEME-AÇMA

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Merhabalar,

Çok sayıda Sayfadan oluşan Çalışma Kitabının, tüm sayfalarında binlerce hücre, Fonksiyon içermekte olup, sayfaların tümünün aynı anda Şifre ile Koruma altına alınmasını teminen bir KODLAMA'ya ihtiyacım var. Elbette, istenildiğinde de bu KODLAMA sayesinde, tüm sayfaların Koruması tümü aynı anda kaldırılabilecek ve aynı anda tekrar Korunabilecektir.

KODLAMA'nın KODLAMA tetiklemesi sırasında ekteki görüntüdeki seçenekleri içermesi çok fayda sağlayacaktır. İstenildiğinde ilgili satırın önüne (') konularak PASİF edilebilmeli, istenildiğinde de (') kaldırılarak AKTİF edilebilmelidir.

Yardımlarınız lütfen.
214599
 
Katılım
27 Mayıs 2018
Mesajlar
130
Excel Vers. ve Dili
2016 x64
Tüm sayfaları aşağıdaki kodla koruma altına alabilirsiniz.

Kod:
Option Explicit
Sub kilitle()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Sheets
    sht.Protect Password:="1234", DrawingObjects:=True, Contents:=True, _
    Scenarios:=True, UserInterfaceOnly:=True, AllowFormattingCells:=False, _
    AllowFormattingColumns:=False, AllowFormattingRows:=False, AllowInsertingColumns:=False, _
    AllowInsertingRows:=False, AllowInsertingHyperlinks:=False, AllowDeletingColumns:=False, _
    AllowDeletingRows:=False, AllowSorting:=False, AllowFiltering:=False, _
    AllowUsingPivotTables:=False
Next
MsgBox "Sayfalar korumaya alınmıştır!"
End Sub
Tüm sayfaların koruması kaldırmak içinse aşağıdakini kullanınız.

Kod:
Option Explicit
Sub kilitAc()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Sheets
    sht.Unprotect Password:="1234"
Next
MsgBox "Sayfa koruması kaldırılmıştır"
End Sub
 

ERMAN SAYINALP

Altın Üye
Katılım
11 Eylül 2008
Mesajlar
173
Excel Vers. ve Dili
Excel 2016 Türkçe
Tüm sayfaları aşağıdaki kodla koruma altına alabilirsiniz.

Kod:
Option Explicit
Sub kilitle()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Sheets
    sht.Protect Password:="1234", DrawingObjects:=True, Contents:=True, _
    Scenarios:=True, UserInterfaceOnly:=True, AllowFormattingCells:=False, _
    AllowFormattingColumns:=False, AllowFormattingRows:=False, AllowInsertingColumns:=False, _
    AllowInsertingRows:=False, AllowInsertingHyperlinks:=False, AllowDeletingColumns:=False, _
    AllowDeletingRows:=False, AllowSorting:=False, AllowFiltering:=False, _
    AllowUsingPivotTables:=False
Next
MsgBox "Sayfalar korumaya alınmıştır!"
End Sub
Tüm sayfaların koruması kaldırmak içinse aşağıdakini kullanınız.

Kod:
Option Explicit
Sub kilitAc()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Sheets
    sht.Unprotect Password:="1234"
Next
MsgBox "Sayfa koruması kaldırılmıştır"
End Sub
Merhabalar,

Zahmetiniz için teşekkür ediyorum, ancak bilemediğim için öğrenmek isterim. Şöyle ki;

"Option Explicit" başlangıcıyla bir KOD'lama uygulaması ne anlama gelir, Module altında çalıştıramadım, ne yapmam gerektiği konusunda yardımlarınız lütfen.
 

muzaffer.sm

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
371
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 TR
Option Explicit : Hatalı değişkenlerin önüne geçilmesi için yazılan bir ifadedir.
Siz Sayın Genesis_vision'un vermiş olduğu kodları bir düğmeye modül içinde atamanız yeterlidir. Çalışmaması için olumsuz bir durum olmaması gerek.
 
Katılım
27 Mayıs 2018
Mesajlar
130
Excel Vers. ve Dili
2016 x64
Merhabalar,

Zahmetiniz için teşekkür ediyorum, ancak bilemediğim için öğrenmek isterim. Şöyle ki;

"Option Explicit" başlangıcıyla bir KOD'lama uygulaması ne anlama gelir, Module altında çalıştıramadım, ne yapmam gerektiği konusunda yardımlarınız lütfen.
Sayın @ERMAN SAYINALP, kodların başına Option Explicit eklersek tüm değişkenleri tanınmlamamız gerekir ancak VBA'da zorunlu bir ifade değildir. Dilerseniz o ifadeyi silebilirsiniz. Kodu çalıştırabilmek için iki ayrı modül ekleyin.
Module1'e ilk kodu, Module''ye ise ikinci kodu yapıştırın.
Çalıştırmak istediğiniz modüle çift tıklayınız. Yukarıdaki play tuşuna benzeyen yeşil üçgene tıklayınız. İşlem tamamdır.
İsterseniz ilk sayfaya iki buton ekleyip makroları buraya bağlayabilirsiniz.
Bu arada kodları yeniden denedim ve sorunsuz çalışıyor.

214616
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Amaç formüllerinizi kurumak ise; aşağıdaki kod ile koruyabilirsiniz. Çalışma Kitabına yapıştırıp deneyiniz.
Kod:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Target.HasFormula = True Then
Target.Offset(, -1).Activate: End If
End Sub
 
Üst