VBA Kod yardımı

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
834
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Merhabalar,

Tüm sayfalara şifre koyulması için şu kodu kullanıyorum.

Kod:
For Each Sheet In Worksheets
Sheet.Protect Password:="3300"
Next Sheet
Ancak A ve B isimli sayfaları şifreleme dışında tutmak istiyorum. Ne gibi değişiklik yapmalıyım ?

Yardımlarınız için teşekkür ederrim.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,826
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
For Each Sheet In Worksheets
    If Not Sheet.Name = "A" Or Not Sheet.Name = "B" Then
        Sheet.Protect Password:="3300"
    End If
Next Sheet
 

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
834
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Merhaba.

Kod:
For Each Sheet In Worksheets
    If Not Sheet.Name = "A" Or Not Sheet.Name = "B" Then
        Sheet.Protect Password:="3300"
    End If
Next Sheet
Hocam, dediğiniz gibi yaptım ama yinede şifreliyor. Kodlarda şifrelemeyi tetikleyen kısım mı var acaba ?


Kod:
Private Sub CommandButton1_Click()
    Worksheets("BOŞ_TASLAK").Unprotect "3300"

    Application.ScreenUpdating = False
    Dim Sayfa As String
    Dim SY As Worksheet
    Set SY = Sheets("ANA")
    Dim SB As Worksheet
    Set SB = Sheets("BOŞ_TASLAK")
    
    For a = 3 To SY.[A65536].End(3).Row
        Sayfa = SY.Cells(a, "A")
        
    If SY.Cells(a, "B") <> "Aktarıldı" Then
        If SY.Cells(a, "A") <> "" Then
            If Not SayfaVarMi(Sayfa) Then
                SB.Copy After:=Sheets(Sheets.Count)
                ActiveSheet.Name = Sayfa
            Else
            End If
        End If
        
        sonsat = Sheets(Sayfa).[B65536].End(3).Row + 2
        SY.Range("B" & a & ":AM" & a).Copy Sheets(Sayfa).Cells(sonsat, "A")
        SY.Cells(a, "B") = "Aktarıldı"
    End If
    Next a
    
    SY.Select
    Application.ScreenUpdating = True
    MsgBox " B i t t i "

'***********
For Each Sheet In Worksheets
    If Not Sheet.Name = "Üretim" Or Not Sheet.Name = "Satışlar" Then
        Sheet.Protect Password:="3300"
    End If
Next Sheet
'**********************
Worksheets("ANA").Unprotect "3300"
Worksheets("BOŞ_TASLAK").Unprotect "3300"
Worksheets("BOŞ_TASLAK").Protect "3300"
Sheets(CStr(Date - 1)).Select

End Sub
Function SayfaVarMi(Sayfa As String) As Boolean
    On Error Resume Next
    SayfaVarMi = CBool(Len(Worksheets(Sayfa).Name) > 0)
End Function
Private Sub CommandButton2_Click()
Dim syf
Application.ScreenUpdating = False
On Error Resume Next
Application.DisplayAlerts = False
döngü:
For syf = 1 To Worksheets.Count
    If Worksheets(syf).Name = "ANA" Or Worksheets(syf).Name = "BOŞ_TASLAK" Or Worksheets(syf).Name = "Üretim" Or Worksheets(syf).Name = "Satışlar" Then GoTo pass    'yazılan sayfa pas geçiliyor
    Worksheets(syf).Delete
    GoTo döngü:
pass:
Next syf
Application.DisplayAlerts = True

    Sheets("ANA").Select
    Range("A2:B380").Select
    Selection.ClearContents
    Range("A3").Select

End Sub
 

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,229
Excel Vers. ve Dili
Ofis 2013 Türkçe
Merhaba
kodlarının sonuna ekleyip denermisiniz
For Each Sheet In Worksheets
If Sheet.Name = "A" Or Sheet.Name = "B" Then
Sheet.Unprotect Password:="3300"
End If
Next Sheet
 

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
834
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Merhaba
kodlarının sonuna ekleyip denermisiniz
For Each Sheet In Worksheets
If Sheet.Name = "A" Or Sheet.Name = "B" Then
Sheet.Unprotect Password:="3300"
End If
Next Sheet
Hocam, alakanız için teşekkür edrim. Denedim ama yine olmadı
 
Katılım
10 Ocak 2016
Mesajlar
36
Excel Vers. ve Dili
Office 2019
Altın Üyelik Bitiş Tarihi
06-05-2021
Merhaba @dunya

Çalışmanıza yardım edebilmek adına dosyayı yükler misiniz ?
 

Mehmet Sait

Altın Üye
Katılım
19 Ekim 2009
Mesajlar
834
Excel Vers. ve Dili
Office 2016 TR
Altın Üyelik Bitiş Tarihi
08-09-2028
Merhaba @dunya

Çalışmanıza yardım edebilmek adına dosyayı yükler misiniz ?
Merhaba hocam, sorunu şu şekilde hallettim,
Kod:
For Each Sheet In Worksheets
Sheet.Protect Password:="3300"
Next Sheet
Worksheets("ANA").Unprotect "3300"
Worksheets("BOŞ_TASLAK").Unprotect "3300"
Worksheets("BOŞ_TASLAK").Protect "3300"
Worksheets("Üretim").Unprotect "3300"
Worksheets("Sevkiyat İrsaliye").Unprotect "3300"
Worksheets("Faturalanan Satışlar").Unprotect "3300"
örnek dosyayı ekliyorum. Yardımlarınız için teşekkür ederim.
 

Ekli dosyalar

Üst