• DİKKAT

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

Süzmeye engel koyma.

  • Konbuyu başlatan Konbuyu başlatan desk
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Ekim 2005
Mesajlar
288
Excel Vers. ve Dili
excel 2010 türkçe
Mrb excel dosyasında süzülü iken kayıt edilmesi sorun yaratıyor nasıl vb makro ile otomatik süzülü iken kayıt edilmeye kalkılırsa uyarı verdirebilirim.?
 
Merhaba,

Çalışma sayfasının kod bölümüne kopyalayarak denermisiniz..

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    With ActiveSheet
        If .AutoFilterMode = True And .FilterMode = True Then
            MsgBox " Lütfen Veri Girişi Yapmayın"
        End If
    End With
End Sub
.
 
Yanlış bir işlem yapmış olabilirsiniz.

Eki inceleyiniz..

.
 

Ekli dosyalar

2003 Kullanıyorum bende çalışmıyor. Ben şöyle yaptım fakat burda sadece uyarı verdirebiliyorum. Kayıdı durduramıyorum cancel çıkışta var nedeni ne anlamadım.

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With ActiveSheet
If .AutoFilterMode = True And .FilterMode = True Then
MsgBox "Lütfen Dosyayı süzülü bırakmayınız. İyi çalışmalar."
Cancel = True
End If
End With
End Sub
 
Kayıttan kastınız dosyayı kaydetmek sanırım..

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    For Each sayfa In Sheets
         If sayfa.AutoFilterMode = True And sayfa.FilterMode = True Then
            MsgBox "Dosyada Filtre Uygulanmış. Kaldırarak Deneyin."
            Cancel = True
        End If
    Next sayfa
End Sub

Bu şekilde denermisiniz..
 
Son düzenleme:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With ActiveSheet
If .AutoFilterMode = True And .FilterMode = True Then
MsgBox "Lütfen Dosyayı süzülü bırakmayınız. İyi çalışmalar."
ActiveWindow.Close
Cancel = True
End If
End With
End Sub


Şimdide kayıt etmek istiyormusunuz durumunda evet deyip sonra hayır deyince hata veriyor. Ve kayıtta yapıyor.
 
#6 nolu mesajı düzenledim. Tekrar deneyiniz..

.
 
Ordada kayıt işlemini yapıyor.
ActiveWindow.Close
koyduğumdada ikinci denemede yine kayıt işlemini yapıyor.
 
Amacınız kayıtı engellemek değil mi? Dosyayı kapatırkende mi kontrol etmek istiyorsunuz?

.
 
Üstad amacım çok açık süzülü ise uyarı ver ve kayıda süzülü iken hiç bir zaman izin verme.
 
Son düzenleme:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With ActiveSheet
If .AutoFilterMode = True And .FilterMode = True Then
MsgBox "Lütfen Dosyayı süzülü bırakmayınız. İyi çalışmalar."
ActiveWorkbook.Save
Application.DisplayAlerts = False
Cancel = True
End If
End With
End Sub

Bu şekilde işim görülüyor fakat şimdide bir sorun karşıma çıktı. Örnek A ve M sütunlarını bu yasağın dışında nasıl tutabilirim. ?
 
Yazdığınız gibi işinizi göreceğini sanmıyorum..

Kod:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    For Each sayfa In Sheets
         If sayfa.AutoFilterMode = True And sayfa.FilterMode = True Then
            MsgBox "Dosyada Filtre Uygulanmış. Kaldırarak Deneyin."
            Cancel = True
        End If
    Next sayfa
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    For Each sayfa In Sheets
         If sayfa.AutoFilterMode = True And sayfa.FilterMode = True Then
            MsgBox "Dosyada Filtre Uygulanmış. Kaldırarak Deneyin."
            Cancel = True
        End If
    Next sayfa
End Sub

Bu şekilde denerseniz daha doğru olur sanırım..

A ve M dışında kalmasından kastınız. A - M arasında kayıta izin versin mi?

.
 
Hayır sadece sütun bazında kast ettiğim. A ve M sütunları süzülü ise kayıt edebilsin uyarıda vermesin.
 
Kodda hem genel bakıp hem içinden çıkarma mümkün olabilirmi? Bu nu nasıl çözebileceğimiz konusunda bir üstad yokmu.?
 
Bu konuda bana yardım edebilecek kimse yokmu.?
 
Sorunun anlaşılamamasına karşı bir örnek dosya eklemek istiyorum.
 

Ekli dosyalar

Kod:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
        With Sayfa1
            If .AutoFilterMode Then
                If .AutoFilter.Filters(4).On Or .AutoFilter.Filters(5).On Then
                Else
                    MsgBox "Süzme işleminizi lütfen kaldırınız. İyi çalışmalar."
                    Cancel = True
                End If
            End If
        End With
End Sub
şeklinde deneyin.
 
Bu şekilde çalışmıyor üstad.? 4 ve 5 sütunları süzüyorum. Sonra öteki sütunlarda süzülü kayıt edemeyeceği yerde kayıt edebiliyor.?
 
Ben bu calismayi filters yerine field kullandigim icin bi turlu oturtamamistim.. yukaridaki sekliyle halit beyin yaptigi gibi calisiyor..
 
Geri
Üst