korunan sayfalarda makronun çalışmaması hk.

Katılım
1 Nisan 2007
Mesajlar
54
Excel Vers. ve Dili
2016 türkçe
Merhabalar ;

Dosya her açıldığında, özel sıralama yapılmaktadır. Fakat herhangi bir sütunu gizleyince ya da sayfayı korumak için şifre kullanınca bu makro çalışmamaktadır. Konunun uzmanı değilim, bu dosyayı da sizlerin yardımıyla hazırladım. O yüzden hazır bir çözüm konusunda destek verebilirseniz çok sevinirim.

https://www.dosyaupload.com/abkv

Saygılarımla
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,803
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Excel sayfalarını korumaya alınca kodlarda hata vermesi normaldir.
Hatayı gidermek için kodlar çalışmadan önce korumanın kaldırılması gerekir, kod sonunda yeniden koruma yapılabişlir.

Dosyanızda ki kodları silin aşağıdaki kodları kopyalayın. Şifre yazan yerlere kendi şifrenizi yazın.
Kod:
Private Sub Workbook_Open()
    With Worksheets("Stok")
        .Unprotect "şifre"
        .Select
        If .FilterMode Then .ShowAllData
        With .ListObjects("Tablo1").Sort.SortFields
            .Clear
            .Add Key:=Range("Tablo1[Marka]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Kategori]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Alt Kategori]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Alt Kategori 2]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Stok]"), Order:=xlDescending
        End With
        With .ListObjects("Tablo1").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        .ListObjects("Tablo1").Range.AutoFilter Field:=9, Criteria1:=">0", Operator:=xlAnd
        .Protect "şifre"
    End With
End Sub
 
Katılım
1 Nisan 2007
Mesajlar
54
Excel Vers. ve Dili
2016 türkçe
Yardımınız için teşekkür ederim, çözüm işe yarıyor. Peki çalışma kitabını da aynı şekilde koruma altına almak istesem?
 

Muzaffer Ali

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

Kod:
    ThisWorkbook.Protect "şifre"
    ThisWorkbook.Unprotect "şifre"
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,803
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki gibi olabilir.
Kod:
Private Sub Workbook_Open()
    ThisWorkbook.Unprotect "şifre"
    With Worksheets("Stok")
        .Unprotect "şifre"
        .Select
        If .FilterMode Then .ShowAllData
        With .ListObjects("Tablo1").Sort.SortFields
            .Clear
            .Add Key:=Range("Tablo1[Marka]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Kategori]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Alt Kategori]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Alt Kategori 2]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Stok]"), Order:=xlDescending
        End With
        With .ListObjects("Tablo1").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        .ListObjects("Tablo1").Range.AutoFilter Field:=9, Criteria1:=">0", Operator:=xlAnd
        .Protect "şifre"
    End With
    ThisWorkbook.Protect "şifre"
End Sub
 
Katılım
1 Nisan 2007
Mesajlar
54
Excel Vers. ve Dili
2016 türkçe
Aşağıdaki gibi olabilir.
Kod:
Private Sub Workbook_Open()
    ThisWorkbook.Unprotect "şifre"
    With Worksheets("Stok")
        .Unprotect "şifre"
        .Select
        If .FilterMode Then .ShowAllData
        With .ListObjects("Tablo1").Sort.SortFields
            .Clear
            .Add Key:=Range("Tablo1[Marka]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Kategori]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Alt Kategori]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Alt Kategori 2]"), Order:=xlAscending
            .Add Key:=Range("Tablo1[Stok]"), Order:=xlDescending
        End With
        With .ListObjects("Tablo1").Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        .ListObjects("Tablo1").Range.AutoFilter Field:=9, Criteria1:=">0", Operator:=xlAnd
        .Protect "şifre"
    End With
    ThisWorkbook.Protect "şifre"
End Sub
Tekrar Merhaba;
Tam istediğim çözüm oldu teşekkür ederim. Fakat sayfanın kodlarını herkes görüntüleyebildiği için, şifreler orda görünebiliyor. Bunun için bir çözüm var mıdır? Saygılarımla
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,269
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
VBA projesine şifre koyun.... gerçi, meraklısı onu da halleder.....

.
 
Katılım
1 Nisan 2007
Mesajlar
54
Excel Vers. ve Dili
2016 türkçe
teşekkürler
 
Üst