• DİKKAT

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

korunan sayfalarda makronun çalışmaması hk.

  • Konbuyu başlatan Konbuyu başlatan eterr
  • Başlangıç tarihi Başlangıç tarihi
  • Etiketler Etiketler
    makro
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
 
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
 
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?
 
Evet yapabilirsiniz.

Kod:
    ThisWorkbook.Protect "şifre"
    ThisWorkbook.Unprotect "şifre"
 
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
 
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
 
VBA projesine şifre koyun.... gerçi, meraklısı onu da halleder.....

.
 
teşekkürler
 
Geri
Üst