Soru Excel Filtre kaldirmayi engelleme kodu

Katılım
30 Nisan 2015
Mesajlar
15
Excel Vers. ve Dili
English
Altın Üyelik Bitiş Tarihi
01-12-2023
Merhabalar,
Bildiginiz uzere Excelde filtrele tusuna bastigimiz zaman (veya Ctrl + Shift + L yaptigimiz zaman) listenin/sayfanin ilk satirina filtre ekler. Oradan istedigimiz sutuna gider, ilgili bilgileri filtreler ve ozeti goruruz.
Bazi arkadaslarda bir aliskanlik var, Filtreyi temizlemek yerine filtreyi komple kaldiriyorlar :) (Filtrele butonuna tekrar basarak veya filtre varken Ctrl+Shift+L yaparak kaldiriyorlar)
Benim dosyamda bir makro calisiyor ve bu filtrenin kaldirilmamasi lazim. Filtreyi temizlemekte sorun yok ama filtre kaldirilmamali. Bunu engellemenin bir yolu var mi?
Filtrenin kaldirilmasini engelleyen bir makro kodu var mi?
Desteginiz icin simdiden tesekkur ederim.

Not: Sayfayi kilitleyemem cunku bu sayfa bir query ve surekli guncelleniyor. Kilitlersem guncelleme islemi gerceklestirilemez.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,444
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Filtreleri Kaldırmayı Önlemek İçin VBA Kodu
  1. Excel VBA Editörüne Erişim:
    • ALT + F11 tuşlarına basarak VBA editörüne erişin.
  2. BuWorkbook Nesnesine Kod Ekleyin:
    • Proje penceresinde "ThisWorkbook" nesnesine çift tıklayın
  3. Aşağıdaki Kodu Ekleyin:

    Kod:
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    If Sh.AutoFilterMode And Not Sh.AutoFilter.Filters(1).On Then
    Application.EnableEvents = False
    MsgBox "Filtre kaldırılmasına izin verilmiyor!", vbExclamation
    Application.EnableEvents = True
    ' Filtreyi tekrar uygulayın
    Sh.AutoFilterMode = False
    Sh.Range("A1").AutoFilter
    End If
    On Error GoTo 0
    End Sub
    Bu kod, herhangi bir değişiklik yapıldığında çalışır. Eğer filtreler kaldırılmışsa, bu kod filtreleri tekrar uygular ve kullanıcıya bir uyarı mesajı gösterir.

  4. Dosyayı Kaydedin:
    • Kodu ekledikten sonra dosyanızı makro içeren bir formatta (.xlsm) kaydedin.
2. Çalışma Sayfasına Koruma Ekleyin
Belirli özelliklerin değiştirilmesini önlemek için sayfayı koruyabilirsiniz. Ancak, filtrelerin tamamen kaldırılmasını engellemese de, bazı kullanıcı hatalarını azaltabilir.
  1. Koruma Özelliklerini Kullanma:
    • Sayfanın üzerindeki "Review" sekmesine gidin ve "Protect Sheet" seçeneğini tıklayın.
    • Kullanıcıların filtreleri değiştirmelerini engelleyecek ayarları yapın. Örneğin, "Use AutoFilter" seçeneğini işaretleyin.
  2. Koruma ve Kaldırma:
    • Koruma ayarlarını yapmak ve uygulamak için şifre belirleyin. Ancak, kullanıcıların filtreleri değiştirmesini engellemek için uygun izinleri seçmelisiniz.
3. Kullanıcı Bilgilendirmesi
Son olarak, kullanıcıları filtrelerin kaldırılmasının neden istemediğinizi bilgilendiren bir not veya talimat ekleyebilirsiniz. Bu, genellikle kullanıcı hatalarını azaltmanın ve uyumu sağlamanın en iyi yollarından biridir.
Notlar ve Öneriler
  • Yukarıdaki VBA kodu, filtre kaldırılmasını zorlaştırsa da, bazen kullanıcılar VBA kodlarını geçici olarak devre dışı bırakabilir veya kodu değiştirebilir. Bu nedenle, kullanıcıları doğru şekilde bilgilendirmek ve düzenlemeleri yapmak önemlidir.
  • Filtre kaldırma işleminin tamamen engellenemediğini unutmamanız önemlidir. Koruma ve kullanıcı bilgilendirme gibi ek önlemler almanız gerekebilir.
Bu yöntemlerle, filtrelerin kaldırılmasını zorlaştırabilir ve kullanıcıları bilgilendirebilirsiniz.
 

Muzaffer Ali

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

Flitre kaldırmayı engellemek yerine Makro dediğiniz kodları düzenlemek daha kolay olur diye düşünüyorum.
Bahsettiğiniz kodu ve sorunu tam olarak söylerseniz kodlarda revize yaparak sorun çözülebilir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,136
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sayfa koruması da işe yaşayabilir.. (Denemedim...)
 
Üst