Hücreleri veri girdikçe teker teker kilitlemek

Katılım
12 Ocak 2016
Mesajlar
3
Excel Vers. ve Dili
2013 İngilizce
Günaydın sevgili dostlar,
Benim problemim başımı çok ağrıttı. Kendim çözemedim sizin değerli fikirlerinizi ve yardımlarınızı almak istedim.

Problemim şu;
Çalışma sayfasına her veri girişinden sonra veri girilen hücre kilitlensin istiyorum. Düzenlemek için tıkladığımda sadece o hücre açılsın değişikliğimi yapayım CTRL+Enter dediğimde geri kilitlensin.
Yani a1 e verimi yazdım enter dedim a2 verimi yazdım enter dedim a3 verimi yazdım enter dediğim zaman a1, a2, a3 kilitlenecek. a2 tıkladığımda şifre isteyecek şifreyi yazıcam a2 yi düzelticem CTRL+Enter diyip hücreden çıktığımda geri kilitlenecek.

Aslında çok kısa bir işlem ama anlatması bu kadar uzun sürdü.
Değerli vaktinizi çaldığım için şimdiden çok özür dilerim.
Saygılar.
 
Katılım
12 Ocak 2016
Mesajlar
3
Excel Vers. ve Dili
2013 İngilizce
Günlerdir uğraşıyorum ancak hiçbir netice alamadım. Yanlış birşeyler yaptığım belli. Arama için yanlış kriterlerde kullanıyor olabilirim. Bu isteğimdeki tek amacım yanlışlıkla veya bilerek kodların değiştirilmemesi veri değiştirilmeye çalıştığında msgbox ile uyarı versede olur. Yeni fikirlere açığım. Sadece hücre içerisinde ki verileri korumak istiyorum yanlışlık olmasın diye. İlgilenirseniz sevinirim.
Saygılar.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,403
Excel Vers. ve Dili
2007 Türkçe
Öncelikle şunu belirtmek isterim: Bu tarz işlemler çok sağlıklı çalışmaz, özellikle güvenlik amaçlı bu işlemi yapmak istiyorsanız kesinlikle güvenmeyin.
Ancak sizin tarafınızdan yanlışlıkla değiştirilmesini engellemek gibi düşünceniz varsa o zaman belki...
Bu işlemi yapmadan önce ilgili sayfadaki tüm hücreleri seçerek hücre biçimlendirmesi, koruma sekmesinden tüm hücrelerin kilitini kaldırınız.
Daha sonra sayfa sekmesi üzerinde sağ tıklayıp Kod görüntüle dedikten sonra açılan pencerenin sağ tarafındaki beyaz alana aşağıdaki kodu kopyalayıp deneyiniz.
Bu işlemin çalışabilmesi için makroların aktif olması gerekmektedir.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Locked = True Then
    şifre = Application.InputBox("Şifreyi giriniz")
    If şifre = "123" Then
        ActiveSheet.Unprotect "şifre"
    Else
        Cancel = True
    End If
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Formula <> "" Then
    ActiveSheet.Unprotect "şifre"
    Target.Locked = True
    ActiveSheet.Protect "şifre"
Else
    ActiveSheet.Unprotect "şifre"
    Target.Locked = False
    ActiveSheet.Protect "şifre"
End If
End Sub
Hücre biçimlendirme için şifre: "123"
Sayfa koruma şifresi: "şifre"
 
Katılım
12 Ocak 2016
Mesajlar
3
Excel Vers. ve Dili
2013 İngilizce
Kesinlikle güvenlik amaçlı değil. Sadece önlem amaçlı kullanmak istediğim bir kod. Ellerinize sağlık kod çalışıyor. Vakit ayırıp emek harcadığınız için çok teşekkür ederim.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,403
Excel Vers. ve Dili
2007 Türkçe
Rica ederim, iyi çalışmalar...
 
Katılım
6 Mart 2019
Mesajlar
1
Excel Vers. ve Dili
Excel 2010 prof. Türkçe
Ben bu kodu kullandım ve çok güzel çalışıyor...

Aynı sayfada; veri girişlerinde
Bir sütuna tarih diğer sütuna saat/dakika yazan aşağıdaki kodum var ve çalışıyor...

Ancak bu iki kodu aynı sayfada çalıştırmak istedim ve beceremedim...:::(((

Yardımcı olursanız sevinirim....
Tarih saati veri girişi ile otomatik yazan kod aşağıdadır...

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E3:E65536]) Is Nothing Then Cells(Target.Row, "A") = Format(Now, "d mmm yyyy dddd")
If Not Intersect(Target, [F3:F65536]) Is Nothing Then Cells(Target.Row, "A") = Format(Now, "d mmm yyyy dddd")
If Not Intersect(Target, [G3:G65536]) Is Nothing Then Cells(Target.Row, "A") = Format(Now, "d mmm yyyy dddd")
If Not Intersect(Target, [E3:E65536]) Is Nothing Then Cells(Target.Row, "B") = Format(Now, "h:mm")
If Not Intersect(Target, [F3:F65536]) Is Nothing Then Cells(Target.Row, "B") = Format(Now, "h:mm")
If Not Intersect(Target, [G3:G65536]) Is Nothing Then Cells(Target.Row, "B") = Format(Now, "h:mm")
End Sub
 

denese

Altın Üye
Katılım
17 Mart 2011
Mesajlar
441
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
02-03-2026
Öncelikle şunu belirtmek isterim: Bu tarz işlemler çok sağlıklı çalışmaz, özellikle güvenlik amaçlı bu işlemi yapmak istiyorsanız kesinlikle güvenmeyin.
Ancak sizin tarafınızdan yanlışlıkla değiştirilmesini engellemek gibi düşünceniz varsa o zaman belki...
Bu işlemi yapmadan önce ilgili sayfadaki tüm hücreleri seçerek hücre biçimlendirmesi, koruma sekmesinden tüm hücrelerin kilitini kaldırınız.
Daha sonra sayfa sekmesi üzerinde sağ tıklayıp Kod görüntüle dedikten sonra açılan pencerenin sağ tarafındaki beyaz alana aşağıdaki kodu kopyalayıp deneyiniz.
Bu işlemin çalışabilmesi için makroların aktif olması gerekmektedir.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Locked = True Then
    şifre = Application.InputBox("Şifreyi giriniz")
    If şifre = "123" Then
        ActiveSheet.Unprotect "şifre"
    Else
        Cancel = True
    End If
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Formula <> "" Then
    ActiveSheet.Unprotect "şifre"
    Target.Locked = True
    ActiveSheet.Protect "şifre"
Else
    ActiveSheet.Unprotect "şifre"
    Target.Locked = False
    ActiveSheet.Protect "şifre"
End If
End Sub
Hücre biçimlendirme için şifre: "123"
Sayfa koruma şifresi: "şifre"
Merhaba,

Aynı uygulamayı tüm çalışma sayfasında değil de, örneğin F7:K1000 aralığına uygulamak istiyorum. Yardımcı olabilir misiniz.
 
Üst