• DİKKAT

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

Belirli çalışma sayfalarının yalnız ve yalnız silinmesini engelleme?

Katılım
22 Ocak 2014
Mesajlar
62
Excel Vers. ve Dili
microsoft office 2010 pro
Arkadaşlar merhaba!

Yapılabilir mi bilmiyorum ama istediğim,belirli çalışma sayfalarının hiç bir şekilde silinememesi(içeriğine müdahale edilebilmeli).Haricinde sayfa ekleme ve silme yapılabilmeli.Yardımlarınızı bekler şimdiden teşekkür ederim.
 
Merhaba,

VBA da "Bu çalışma kitabı" sayfasına kopyalayın. Kaydedip kapatın ve tekrar açın.
Dosyayı kapatmadan önce şifrelenecek sayfa adlarını kendinize göre düzenlersiniz.

Kod:
Dim syf()

Private Sub Workbook_Open()

    Dim i As Integer, j As Byte
    
    syf = Array("Sayfa1", "Sayfa3") 'şifreli sayfalar
    
    For i = 1 To Worksheets.Count
        For j = 0 To UBound(syf)
            If Sheets(i).Name = syf(j) Then
                Sheets(i).Unprotect
                Sheets(i).Cells.Locked = True
                Sheets(i).Protect
                Exit For
            Else
                Sheets(i).Unprotect
            End If
        Next j
    Next i
    
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Dim i As Byte, deg

    ActiveWorkbook.Unprotect

    For i = 0 To UBound(syf)
        If ActiveSheet.Name = syf(i) Then
            ActiveWorkbook.Protect
            Exit Sub
        End If
    Next i
            
    For Each deg In ActiveWindow.SelectedSheets
        For i = 0 To UBound(syf)
            If deg.Name = syf(i) Then
                MsgBox "Seçili Sayfaların Arasında Şifreli Sayfalar Var"
                Exit Sub
            End If
        Next i
    Next deg

End Sub


Not: Detaylı deneme yapmadım.

.
 
Öncelikle alakanız için teşekkür ederim.
Becerememiş olabilirim lakin yazdıklarınızı uyguladıktan sonra malesef ilgili sayfa, üzerinden sağ tuş ile silinebiliyor.Bir yerde hata yapıyor olabilir miyim?
 
Eki inceleyin.

Sayfa1 ve Sayfa3 şifreli.

.
 

Ekli dosyalar

Evet inceledim.Kendi çalışma kitabı'ma uyarladım.Şöyle arz edeyim.Sayfalar arasında veri alışverişi (copy-past) yapılamıyor.Halihazırda kullanmakta olduğum makrolarda "Sheets.Add, Sheets(A).Copy After:=Sheets(1)" ve bunun gibi komut satırları hata veriyor.Bunun bir çözümü oluşturulabilir mi? Saygılarımla..
 
Örneğinizi görmeden yorum yapmam zor.

Hata aldığınız dosyayı ekleyerek, hangi durumlarda hataların alındığını açıklar mısınız.

.
 
Durumu şöyle özetlemek isterim.Örneğin,göndermiş olduğunuz ekli dosyada "sayfa1"e yazdığım değerleri kopyalayıp hiç bir sayfaya hiç bir şekilde yapıştıramıyorum(tüm korumaları kaldırmama rağmen).Bir de ilgili sayfalardaki "ekle" komutunu aktif hale getirebilir miyiz? Yalnızca silinememesi yeterli.Saygılar sunarım..
 
Sayfa aktif olduğunda makro çalıştığı için kopyalama iptal oluyordur.

Üzerinde çalışmak gerek. Boş vaktimde incelerim.

.
 
Ben şöyle bir çözüm yolu buldum sanırım.Silinmemesi istenen sayfanın kod protokolüne aşağıdaki komutları yazdım.

Private Sub Worksheet_Deactivate()
ThisWorkbook.Protect , True
Application.OnTime Now, "UnprotectBook"
End Sub


Bu makronun çalışabilmesi için de yeni açarak oluşturduğum "Module1" protokolünün içine de aşağıdaki kodları yazdım.Ve gerçekten istediğim oldu.

Sub UnprotectBook()
ThisWorkbook.Unprotect
End Sub


Yalnız yine silinmemesini istediğim sayfalar arası copy-past yapılamıyor.Bir de excel programı bazen çalışmayı durduruyor.Fırsatını bulup incelerseniz sevinirim.
 
Geri
Üst