• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Hücre koruma

Katılım
10 Ağustos 2004
Mesajlar
292
Excel Vers. ve Dili
Excel 2021 - Türkçe
Merhaba arkadaşlar aşağıdaki koda “Z1:Z100” aralığındaki herhangi bir hücrede “A” yazıyor ise çalışsın boş ise çalışmasını nasıl yapabilirim. Başka öneriniz olursa oda olur. Benim yapmak istediğim Z1 dolu ise A1:K1 hücre aralığını koruma altına almak daha sonra Z1 boş olduğunda A1:K1 hücre aralığındaki korumanın kaldırılması.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
ActiveSheet.Unprotect "a"
If Target.Value <> "" Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Locked = True
End If
ActiveSheet.Protect "a"
End Sub
 
Mesajınızda Z1:Z100 demişsiniz fakat kod içinde A1:A100 aralığı tanımlanmış. Hangisi geçerli?
 
Korhan hocam Z1:Z100 kıstasına göre işlem yapsın. Örneğin Z1 de "A" yazıyor ise A1:K1 aralığını kilitlesin.
 
Öncelikle sayfadaki tüm hücrelerdeki kilidi açın.Sonra aşağıdaki kodları deneyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [Z1:Z100]) Is Nothing Then Exit Sub
ActiveSheet.Unprotect "a"
If Target.Value <> "" Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Locked = True
End If
ActiveSheet.Protect "a"
End Sub
 
Cevap için teşekkürler. Benim eklediğim kodda aynı işlemi yapıyor. Benim yapmak istediğim örneğin Z1 dolu ise hücre A1:K1 aralığı kilitlensin daha sonra Z1 hücresini sildiğimde A1:K1 aralığının koruması kalksın.
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [Z1:Z100]) Is Nothing Then Exit Sub
ActiveSheet.Unprotect "a"
If Target.Value <> "" Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Locked = True
else
Range(Cells(Target.Row, 1), Cells(Target.Row, 11)).Locked = False
End If
ActiveSheet.Protect "a"
End Sub
 
Rica ederim.
 
Geri
Üst