• DİKKAT

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

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
 
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
 
Hocam süpersiniz tam istediğim kod çok teşekkürler
 
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.
 
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.
 
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
 
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.
 
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.
 
teşşekürler
 
Geri
Üst