Sayfa Korumalı Kilidi Açık Hücreleri Makro İle Kilitleme

Katılım
25 Haziran 2006
Mesajlar
183
Excel Vers. ve Dili
Excel 2003 TR SP2
Sayfa Koruması yapılmış bir çalışma sayfasında bütün hücreler kilitli işaretli, ancak;
A1 B1 C1 (satır) hücrelerinin kilidi açık
H1 H2 H3 (sütun) hücrelerinin kilidi açık
bu korumalı sayfaya önceden yerleştirlen tuşlar ile bu hücreleri korumalı sayfa dahi olsa kilitleyebilirmiyiz.
 
Katılım
13 Haziran 2006
Mesajlar
374
Excel Vers. ve Dili
Excel 2003 Türkçe
Matematik Öğretmeni VB,Excel-VBA,...
Sorununuzu aşağıdaki kodlarla sanırım giderebilirsiniz.
Kod:
 Range("A" & i + 7).Select 'A sütununda yedinci satırdan itibaren i deişkenine kadar olan satır seçim
   Range("A"& i + 7 & ":D& i + 7 & "").Select hücre ile komşusunu birleştirip ortalar
    Selection.Merge
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .ShrinkToFit = False
        .MergeCells = True
    End With
    Selection.Font.Bold = True ' seçilen A sütununa kalın font yazdırır
    Selection.Locked = True  'seçilen A sütununu yedinci satırdan itibaren kilitler
    Selection.FormulaHidden = True
     
    Range("b" & i + 7 & ": t" & i + 7 & "").Select  'Satır sonunu kilitler
     Selection.Locked = True
     Selection.Locked = True
'Sayfayı korumalı moda alır....fakat koruma şifresini nasıl belirleyeceğiniz konusunda bişe diyemicem
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Dosyanızı inceleme fırsatım olmadı fakat benim kullandığım kodları kendinize göre uyarlayabilirsiniz sanırım.
 
Katılım
25 Haziran 2006
Mesajlar
183
Excel Vers. ve Dili
Excel 2003 TR SP2
ilginiz için tşkler
dosya teferruatlı değil zaten, olmadı sanırım hata bende .
 
Son düzenleme:
Katılım
25 Haziran 2006
Mesajlar
183
Excel Vers. ve Dili
Excel 2003 TR SP2
Çalışmam bitti bu sorunu bir çözsem paylaşıma sunacağım.
Notları girdikten sonra kilidini açtığım hücreleri kilitlemem lazım ki sınıf bilgisayarında notuna bakan öğrenci notu değiştirmesin.
Bu işlemi de sayfa korumasını önce açmam ve hücreleri kilitlemem daha sonra bu sayfayı tekrar korumam lazım gibi uzun bir sürede yapmam lazım. Ama bir makro ile bunu notları yazdıktan sonra tıklayarak yapsam daha kolay olacak.
Eğer mümkün bir işlemse ekte örnek verdim fazla teferruatlı bir dosya değil bende ordaki kodları kendi sayfama uyarlayabilirim.
Tşk ler
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Kod:
Private Sub CommandButton1_Click()
ActiveSheet.Unprotect Password:="1"
Worksheets("Sayfa1").Range("A1:C1").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect Password:="1"
End Sub
Kod:
Private Sub CommandButton2_Click()
ActiveSheet.Unprotect Password:="1"
Worksheets("Sayfa1").Range("H1:H3").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect Password:="1"
End Sub
 
Katılım
25 Haziran 2006
Mesajlar
183
Excel Vers. ve Dili
Excel 2003 TR SP2
Sayfanın son hali sizde deneyebilirsiniz.
Tekrar teşekkürler Ali Bey.
 
Katılım
25 Haziran 2006
Mesajlar
183
Excel Vers. ve Dili
Excel 2003 TR SP2
Private Sub CommandButton1_Click()
ActiveSheet.Unprotect Password:="q789520p"
Worksheets("turkce").Range("D9:D38").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect Password:="q789520p"
End Sub

Bun koddan 24 tane var.
En son kod bu

Private Sub ToggleButton1_Click()
If ToggleButton1 = True Then
Rows.EntireRow.Hidden = False
ToggleButton1.Caption = "Boş Satırları Gizle"
End If
If ToggleButton1 = False Then
ToggleButton1.Caption = "Boş Satırları Göster"
For X = 9 To 38
If Cells(X, "B") = 0 Then Rows(X).Hidden = True
Next
End If
End Sub

Sayfayı normal kilitleyince Satır Göster-Gizle çalışıyor. Ama CommandButton larla kilitleme yapınca Range sınıfının Hidden özelliği kurulamıyor hatası veriyor.
Yardımcı olursanız sevinirim. Tşkler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,572
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

ToggleButton1 de kullandığınız kodu aşağıdaki ile değiştirip denermisiniz.

Kod:
Private Sub ToggleButton1_Click()
    If ToggleButton1 = True Then
    ActiveSheet.Unprotect Password:="q789520p"
    Rows.EntireRow.Hidden = False
    ActiveSheet.Protect Password:="q789520p"
    ToggleButton1.Caption = "Boş Satırları Gizle"
    End If
    If ToggleButton1 = False Then
    ActiveSheet.Unprotect Password:="q789520p"
    ToggleButton1.Caption = "Boş Satırları Göster"
    For X = 9 To 38
    If Cells(X, "B") = 0 Then Rows(X).Hidden = True
    Next
    ActiveSheet.Protect Password:="q789520p"
    End If
End Sub
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,572
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Üstteki mesajımdaki kodda düzenleme yaptım. Son halini kullanınız.

Düzeltme : İkinci Unprotect yazan satırlar Protect olarak değiştirildi.
 
Katılım
25 Haziran 2006
Mesajlar
183
Excel Vers. ve Dili
Excel 2003 TR SP2
teşekkürler COST_CONTROL
gece verdiğin kod bütün hücreleri göster denildiğinde kilidi açıyor kiltle butonu hepsini kiltliyordu.
bu kez doğru çalışıyor. eline sağlık
 
Üst