Dolu Hücre kitleme

Katılım
19 Ağustos 2005
Mesajlar
201
Excel Vers. ve Dili
Excel 2003 Tr
Sayın Hocalarım
Yaptığım bir çalışma da kullanmak üzere aşağıda belirttiğim işlem için kodlara ihtiyacım var
Hücre kilitleme işlemi bilindiği gibi hücre biçimlendir işleminde kilitli ise sayfa koru dediğimizde korumaya alınıyor. sadece dolu hücreleri kilitlemek istiyorum yani

CommandButton'a tıklayınca sadece içeriği dolu hücreler kilitlenerek koruma altına alınacak diğer hücrelerin kilidi açık kalacak ancak boş hücrelerden herhangi birine veri girişi yapılılabilecek sonra CommandButton'a tıkladığımızda yeni giriş yapılmış hücrelerde kitlenerek koruma altına alınacak
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

Commanbutton2'nin kodlarını aşağıdaki şekilde düzenleyebilirsiniz.

Kod:
Private Sub CommandButton1_Click()
Dim hcr As Range
ActiveSheet.Unprotect
For Each hcr In Cells.CurrentRegion
    If IsEmpty(hcr) Then
       hcr.Locked = False
    Else
       hcr.Locked = True
    End If
Next
ActiveSheet.Protect
End Sub
 
Katılım
19 Ağustos 2005
Mesajlar
201
Excel Vers. ve Dili
Excel 2003 Tr
Hocam süpersiniz tam istediğim kod çok teşekkürler
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,716
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhabalar

Commanbutton2'nin kodlarını aşağıdaki şekilde düzenleyebilirsiniz.

Kod:
Private Sub CommandButton1_Click()
Dim hcr As Range
ActiveSheet.Unprotect
For Each hcr In Cells.CurrentRegion
    If IsEmpty(hcr) Then
       hcr.Locked = False
    Else
       hcr.Locked = True
    End If
Next
ActiveSheet.Protect
End Sub
Sayın fpc, merhaba, içinde veri olan hücreleri biz seçerek ( örneğin B5,B6,B7 C44,E33 gibi ) kilitleyebilirmiyiz , bu seçimi macro'ya bildirerek yapacaksak yukarıdaki kod nasıl olmalıdır? Teşekkür ederim.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Tabi yapabilirsiniz. Bunun için;

Kod:
For Each hcr In Cells.[COLOR=blue]CurrentRegion[/COLOR]
yazan satırı -ki CurrentRegion, mevcut çalışma alanını temsil eder-
Kod:
For Each hcr In [COLOR=red]Selection[/COLOR]
olarak değiştirmeniz yeterli... Yeni satırdaki Selection ibaresi, sizin seçiminizi temsil eder.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,716
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Private Sub CommandButton1_Click()
Dim hcr As Range
ActiveSheet.Unprotect
For Each hcr In Cells.Selection(A1:C7)
If IsEmpty(hcr) Then
hcr.Locked = False
Else
hcr.Locked = True
End If
Next
ActiveSheet.Protect
End Sub

Sayın fpc, kırmızı ile yazılan yer'de A1:C7 arasını kilitle demek istedim,(doğru mu acaba), yada A1,C3,F4 için ...(A1,C3,F4) mü demek gerekir, zamanınız var ise alternatifli kodu yazarsanız son derece memnun olurum, tekrar teşekkürler saygılar
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ben anladım ki ; seçim Mouse ile yapılacak.. Oysa, siz belirli hücre referanslarını yazmak istemektesiniz anlaşılan.

Selection : Mouse veya klavye ile seçilen (karartılmış) alan
CurrentRegion : Mevcut Çalışma alanı
Range : Belirli bir aralık

Bu durumda bizim Range nesnesini kullanmamız gerekir.

Kırmızı ile belirttiğiniz satırı, şu şekilde değiştirin.
Kod:
For Each hcr In Range("A1:C7")
veya blok değil de parçalı bir alan da bu işlemi yapmak istiyorsanız, o zaman ;
Kod:
For Each hcr In Range("A1,C3,F4")
satırını kullanabilirsiniz.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,716
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Ben anladım ki ; seçim Mouse ile yapılacak.. Oysa, siz belirli hücre referanslarını yazmak istemektesiniz anlaşılan.

Sayın fpc, teşekkür ederim, yeni yılın şahsınıza ve sevdiklerinize hayırlı ve uğurlu gelmesi dileklerimle, saygılar sunarım.
 
Katılım
27 Ağustos 2007
Mesajlar
41
Excel Vers. ve Dili
2007
teşşekürler
 
Üst