• DİKKAT

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

Soru macro ile tüm sayfayı korumaya alma

Katılım
18 Ağustos 2009
Mesajlar
752
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Aylık olarak takipde kullandığım dosyamda 1-31 sayfa bulunmaktadır. Benim amacım örneğin 13 numaralı sayfa ile iş bitip 14 nolu sayfaya geçtiğimde o sayfayı tüm değişikliklere karşı koruma altına almaktır. Şuan da sayfalarda belirlediğim hücreler kilitli sayfada koruma olduğundan sadece o alanlarda değişiklik yapılamıyor. Ekteki dosyamda sadece sarı ile boyalı kısımlar kilitli ve şifresi 123 arkadaşlar.. Butona tıkladığımda tüm hücreleri 123 ile koruma altına aldırmak için
nasıl bir macro kullanabilirim? İstenildiği zaman da tüm sayfaların kilitlerini kaldırıp ya da kilitleme gibi bir yöntem uygulanabilirmi? 31 gün varsa 1 butonla tüm 31 günü koruma altına alacam ve değişiklik yapılamayacak..

Teşekkürler..
 

Ekli dosyalar

Aşağıdaki kodla bu işlemi yapabilirsiniz.

C++:
Sub Koruma_Aktif()
    With Sheets("Sayfa1")
        .Unprotect "123"
        .Cells.Locked = True
        .Protect "123"
    End With
End Sub
 
Aşağıdaki kodla bu işlemi yapabilirsiniz.

C++:
Sub Koruma_Aktif()
    With Sheets("Sayfa1")
        .Unprotect "123"
        .Cells.Locked = True
        .Protect "123"
    End With
End Sub


Öncelikle teşekkürler hocam. Sayfa1 standart değil buton sayfa adını otomatik olarak tespit edip sayfadaki kiliti açtıktan sonra tüm hücreleri kilitleyip sonrasında yeniden şifreleyecek. Birde mesela çalıştığımız sayfa 22 nolu sayfa.. Bu sayfa öncesindeki tüm günleri şifre dediğimizde de 1-21 arasını şifreleyecek hocam..
 
Sheets("Sayfa1") yerine ActiveSheet yazıp deneyiniz.
 
Eğer 1-31 arasında bütün sayfalarınız dosyanızda varsa aşağıdaki kod sorunsuz çalışır.

C++:
Option Explicit

Sub Koruma_Aktif()
    Dim X As Integer
    For X = 1 To Val(ActiveSheet.Name) - 1
        With Sheets(CStr(X))
            .Unprotect "123"
            .Cells.Locked = True
            .Protect "123"
        End With
    Next
End Sub
 
Geri
Üst