Soru 2010 ile yeni sürümler arasındaki uyumsuzluk ile alakalı..

xternet

Altın Üye
Katılım
12 Kasım 2004
Mesajlar
455
Excel Vers. ve Dili
2010 Tr
Altın Üyelik Bitiş Tarihi
12-10-2028
Merhaba arkadaşlar.
Uzun zamandır kayıtlı lisanslı olarak Excel 2010 u kullanıyorum ve yıllardır tüm birikimimi bu versiyon ile yaptım ve sorunsuz kullandım. Ama excel in 2010 sonrası versiyonlarında yaptığım çalışmalar ile sorun yaşıyordum ve bunun kodlardan kaynaklı kapsamlı bir uyumsuzluk olduğunu düşünüyordum.
Kodlar demişken; ciddi bir kod bilgim de yok. Zaman zaman makro kaydederek, zaman zaman buradaki örnek çalışmalardan uyarlama yaparak, zaman zaman da burada ki ustaların destekleriyle yazdığım kodlar.
Bu akşam keşfettim ki sorun sadece bir noktada imiş. O da şu:

Dosyalarım da, sayfa içerisindeki formüller yanlışlıkla bozulmasın diye sürekli şifreleyerek kullanıyorum. Her kodun önüne ve arkasına koruma kaldırma ve işlem bittiğinde tekrar koruma ekleme satırları ekliyorum. Örneğin;

Sub Ana_liste_sil()
Application.ScreenUpdating = False

For a = 1 To Sheets.Count
Sheets(a).Unprotect "1234" = True
Next
Range("J10:N1609").ClearContents
Range("AL11").ClearContents
Range("A1").Select

For a = 1 To Sheets.Count
Sheets(a).Protect "1234" = True
Next
Application.ScreenUpdating = True
End Sub

Daha uzun soluklu kodlarda da bu şekilde kullanıyorum.

Birde sadece şifreleme ve şifre kaldırma kodlarım var.
Private Sub CommandButton5_Click()
'ŞİFRELE
Application.ScreenUpdating = False
For a = 1 To Sheets.Count
Sheets(a).Protect "1234" = True
Next
Application.ScreenUpdating = True
End Sub

Private Sub CommandButton27_Click()
'ŞİFRE AÇ
Application.ScreenUpdating = False
For a = 1 To Sheets.Count
Sheets(a).Unprotect "1234" = True
Next
Application.ScreenUpdating = True
End Sub

Şimdi gelelim soruna.
Yeni sürümlerde kodlar çalıştırıldığında kod işlem yapmadan kitabın son sayfalarından birine gidip alakasız bir hata veya kodun içinde geçen bir hata mesajını verip bitiyordu. Bundan dolayı evimin dışında başka bilgisayarlar da 2010 yüklü değilse benim çalışma iş görmüyordu.
Bu akşam fark ettim ki; kodu çalıştırmadan önce sayfaların korumasını yukarıda yazdığım “ŞİFRE AÇ” komutu ile kaldırdıktan sonra (bu kod tek başına çalışırken hiçbir sorun yok) diğer komutu çalıştırdığımda kod sorunsuz çalışıyor. Ama sayfalar şifreli iken çalıştırdığım da kod hata veriyor.
Oldukça kapsamlı bir çalışmam da neredeyse tüm kodlarda bu şekilde deneme yaptım ve hepsi sorunsuz çalıştı. Önce şifre aç komutu sonra diğer komut... (çünkü her kodun sonunda tekrar şifreleme kodu var)

Uzun yıllar 2010 dışındaki versiyonlarda sorun yaşadıktan sonra bu akşam sorunun nereden kaynaklandığını keşfetmiş olmak beni çok mutlu etti. Bide üstatlar bu sorunun çözümü için yardımcı olabilirse çok memnun olucam.
Umarım derdimi anlatabilmişimdir.
İyi çalışmalar herkese.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Hata veren dosyanızı paylaşma imkanınız varsa bizde deneyebiliriz.
 

xternet

Altın Üye
Katılım
12 Kasım 2004
Mesajlar
455
Excel Vers. ve Dili
2010 Tr
Altın Üyelik Bitiş Tarihi
12-10-2028
Benzer problem yaşadığım küçük bir çalışma.
Sağ üst kısımdaki "LİSTELE" butonu 2010 da sorunsuz çalışırken,
üst versiyonlarda bahsetiğim hatayı veriyor. Ayrıca soldaki "KORUMA İPTAL"butonu da 2010 sayfa sekmesini değiştirmez iken,
üst versiyonlarda sondan 2.sayfada sonlanıyor.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Ben sizin şifrelemede kullandığınız yöntemi ilk defa görüyorum.

Sheets(a).Unprotect "1234" = True

Ben bildiğim şekilde kodlarınızı revize ettim ve LİSTELE butonunuza bir ekleme yaptım. Diğer butonlarınızda benzer sorunlar varsa sizde aynı yöntemi kullanabilirsiniz.

Bahsettiğim düzeltmeleri içeren dosyanız ektedir.

Not: Başka çalışmalarınızda da bu tarz sorunlaarı yaşamamak adına TANIMLAMALARI (Dim) kullanmanızı şiddetle tavsiye ederim.
 

Ekli dosyalar

xternet

Altın Üye
Katılım
12 Kasım 2004
Mesajlar
455
Excel Vers. ve Dili
2010 Tr
Altın Üyelik Bitiş Tarihi
12-10-2028
Çok teşekkür ediyorum Sayın Korhan Ayhan. Düzenlemeniz sorunumu çözdü.
Ama ben tüm kodlarda aynı mantıkla çalıştığım için oldukça fazla düzeltme yapıcam :)
Sheets(a).Unprotect "1234" = True
Kullandığım bu kodu da bu forumdan almıştım ve yıllardır 2010 da sorunsuz kullandım.

Not: Başka çalışmalarınızda da bu tarz sorunlaarı yaşamamak adına TANIMLAMALARI (Dim) kullanmanızı şiddetle tavsiye ederim.
Yukarıda ifade ettiğim gibi kullandığım tüm kodları bu forumdan kendi çalışmalarıma uyarlayarak yada makro kaydederek yazdım.
Yani genel tabir ile biraz kaba düzen çalışıyorum malesef.
İnşallah yakın zamanda bu işin mantığı için daha kapsamlı bir çalışmaya başlayacağım.

Katkınız için tekrar teşekkür ediyorum. Elinize zihninize sağlık.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Peki bu kod satırına göre sayfa koruma şifresi ne oluyor?
 

xternet

Altın Üye
Katılım
12 Kasım 2004
Mesajlar
455
Excel Vers. ve Dili
2010 Tr
Altın Üyelik Bitiş Tarihi
12-10-2028
Aslında manuel olarak kod işlemiyor. Yani şifre 1234 gibi ama manuel çalışmıyor.
İlk günden beri bu durum dikkatimi çekmişti ama ben hep kod içerisinde kullandığım için önemsemedim.
 
Üst