Koşullu Hücre Kilitleme

Katılım
16 Şubat 2024
Mesajlar
7
Excel Vers. ve Dili
türkçe
Merhaba,

A1 hücresinde bir formülüm var. Bu formül kullanıcı tarafından o hücreye herhangibir giriş yapılmasın diye A1 hücresini kilitliyorum. Fakat şöyle bir sorunum oluştu örneğin eğer A2 hücresinde herhangibir değer yoksa A1 hücresinin kilidinin açılıp A1 hücresine veri girilmesi gerekiyor. Bunu nasıl yapacağım. Şimdiden teşekkürler
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
963
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Direkt olarak A1 hücresinin kilidini A2'nin değerine göre açmak için, Excel'de doğrudan bir "şartlı kilit açma" fonksiyonu bulunmamaktadır.

A1 Hücresinin Kilitli Olduğundan Emin Olun:
A1 hücresini seçin, sonra Hücreyi Biçimlendir menüsünden Koruma sekmesine gidin.
"Kilitli" kutusunun işaretli olduğundan emin olun.

Diğer Hücrelerdeki Kilit Özelliğini Kaldırın:
Tüm hücreleri seçmek için Ctrl + A tuşlarına basın.
Sağ tıklayın > Hücreyi Biçimlendir > Koruma sekmesine gidin.
"Kilitli" kutusunun işaretini kaldırın.

veya aşağıdaki makroyu kullanın A2 boşsa A1 kilitli olacak---A2 doluysa A1 açılacak

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A2")) Is Nothing Then
        If IsEmpty(Me.Range("A2").Value) Then
            Me.Range("A1").Locked = True 
        Else
            Me.Range("A1").Locked = False 
        End If        
        Me.Protect
    End If
End Sub
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,878
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ben soruyu biraz farklı anladım.

A2 boşsa, A1 e manuel değer girilebilecek.
A2 doluysa A1de bir formül çalışacak.
A2 tekrar silinir yani boş kalırsa A1de yine aynı formül çalışacak

Sayın @muhasebeciyiz arkadaşımın veridği koda küçükbir revizyon yaptım.
C++:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("A2")) Is Nothing Then
        Application.EnableEvents = False
        Me.Unprotect
        If IsEmpty(Me.Range("A2")) Then
            Me.Range("A1").Locked = False
            Me.Range("A1") = Empty           
        Else
            Me.Range("A1").Locked = False
            Me.Range("A1").Formula = "=A2+10"  'Buraya kendi formülünüzü yazmalısınız
        End If
        Application.EnableEvents = True
        Me.Protect
    End If
End Sub
 
Üst