Çalışma kitabında ki tüm sayfalarda sadece 1 hücrenin içeriğinin değişmesini engelleme

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Merhaba üstadlar; başlıkta da olduğu gibi bir çalışma kitabında diyelim 20 sayfa var ANASAYFA hariç geriye kalan her sayfada ki C4 hücresinin içeriğinin değiştirilmesini önlemek istiyorum. Bir yolu var mı acaba?
Kolay gelsin
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Yapmanız gereken her sayfaya girip tüm hücreleri seçip korumasını kaldırmak, sonra C4 hücresine koruma koymak olmalı ve sayfayı kilitlemelisiniz.

Tabi bunu ANASAYFA dışındaki sayfalarda yapmanız gerekecek.

Aşağıdaki kodlar bu işi yapar. Sayfa koruma şifresi 1 dir.
Kodları bir kere çalıştırdıktan sonra tekrar çalıştırdığınızda hata alırsınız. Bu durumda kodların başına sayfa korumasını kaldıran kodu eklemelisiniz.
Protect değil UnProtect ile.


Kod:
Sub Makro1()
   
    Dim Syf As Worksheet
   
    For Each Syf In Sheets
   
        If Not Syf.Name = "ANASAYFA" Then
           
            With Syf.Cells
                .Locked = False
                .FormulaHidden = False
            End With
            With Syf.Range("C4")
                .Locked = True
                .FormulaHidden = True
            End With
           
            Syf.Protect "1"
           
        End If
       
    Next Syf
   
End Sub
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Hocam emeğine sağlık yarın neticeden haber ederim çok sağolasın
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Tekrar merhaba,

Yukarıda sözünü ettiğim hatalı durumun olmaması için kodların aşağıdaki gibi düzenlenmesi daha mantıklı.
İkinci defa çalıştırıldığında hata vermeyecektir.
Tabi sayfa şifrelerinin koddaki şifre olmasına dikkat etmek şartıyla.

Kod:
Sub Koru()

    Dim Syf As Worksheet
   
    For Each Syf In Sheets
   
        If Not Syf.Name = "ANASAYFA" Then
       
            If Syf.ProtectContents = True Then Syf.Unprotect "1"
           
            With Syf.Cells
                .Locked = False
                .FormulaHidden = False
            End With
           
            With Syf.Range("C4")
                .Locked = True
                .FormulaHidden = True
            End With
           
          Syf.Protect "1"
         
        End If
        
    Next Syf
       
    MsgBox "Sayfalardaki C4 Hücresi Koruma Altına Alınmıştır....", vbInformation, "excel.web.tr"
   
End Sub
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Tekrar merhaba,

Yukarıda sözünü ettiğim hatalı durumun olmaması için kodların aşağıdaki gibi düzenlenmesi daha mantıklı.
İkinci defa çalıştırıldığında hata vermeyecektir.
Tabi sayfa şifrelerinin koddaki şifre olmasına dikkat etmek şartıyla.

Kod:
Sub Koru()

    Dim Syf As Worksheet
  
    For Each Syf In Sheets
  
        If Not Syf.Name = "ANASAYFA" Then
      
            If Syf.ProtectContents = True Then Syf.Unprotect "1"
          
            With Syf.Cells
                .Locked = False
                .FormulaHidden = False
            End With
          
            With Syf.Range("C4")
                .Locked = True
                .FormulaHidden = True
            End With
          
          Syf.Protect "1"
        
        End If
       
    Next Syf
      
    MsgBox "Sayfalardaki C4 Hücresi Koruma Altına Alınmıştır....", vbInformation, "excel.web.tr"
  
End Sub
hocam çok teşekkürler ancak deneme imkanım oldu emeğinize sağlık
 
Üst