E

Çözüldü ListBox ve CheckBox ile Çok Koşullu Filtreleme

  • Konuyu başlatan Konuyu başlatan evuye2
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

evuye2

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,
Macro kaydederek filtreleme yapmak istiyorum. Filtreleme kriterleri değişken olacak. Kaydettiğim macro nun aşağıdaki gibi bir kodu var:
Kod:
Görüntülemek için giriş yapmanız gerekmektedir.
(10 satır)

Bunu ne şekilde yapabilirim. Yardımcı olursanız çok sevinirim.

Orjinal dosya:

Teşekkürler.
 
Çözüm
Tekrar merhaba Sayın @evuye .

Belgenizde, ActiveX denetimleri grubundaki nesnelerin AD TANIMLAMA alanlarında (Variables tablosundaki sütunlar)
değişiklik yapıldığında kendilerini otomatik olarak güncellemediklerini fark ettim ve bu nedenle
ActiveX denetimleri grubundaki nesneler yerine, FORM DENETİMLERİ grubundaki nesneleri kullanmayı uygun gördüm.

Belgede sözkonusu NESNE işlemleri tamamlanıncaya kadar filtre düğmesinin işlevini iptal ettim
(kodlar esasında duruyor, yukarıda değişiklik tamamlanınca filtre makrosunu tekrar düzenleriz).

Belgenize, filtre kriteri olarak kullanılacak 3 unsura ait nesneleri ve bunların kendi içerisinde etileşimli çalışmaları için gerekli kodları da ekledim.
Yani sadece Onay Kutusu / Liste...
Merhaba,
Sadece şöyle bir durum var. Sayfayı koru yaptığımda Sonuçları Getir" butonuna basınca kod hata veriyor.
Ekran Alıntısı.webp

@Ömer BARAN hocam bu projenin 8.3 versiyonunda liste kutularını bir şekilde kilitlemişti(Alttaki resimde ki gibi). Açmak için "Tasarım Modu" butonuna basmak gerekiyordu.
Ekran Alıntısı.webp

Bu da işimi görür aslında. Epey kurcaladım ama bulamadım.
Bunu nasıl yapabilirim.
 
Moderatörün son düzenlenenleri:
Tekrar merhaba Sayın @evuye .

-- Eklediğim belgedeki filtreleme kod blokunda, en sondaki NEXT satırının altında kalan kısmı aşağıdakiyle değiştirin.
-- Kırmızı renklendirdiğim satırlar, daha evvel kod'un en üst kısmında idi. Yani bu kısma taşınacak, üstteki ilgili satırları oradan silin.
-- Belgeye sayfa koruması için PAROLA olarak ne yazmışsanız MAVİ renklendirdiğim kısımlara kendi parolanızı yazarsınız.
Parola zaten kuullanmıyorsanız ÇİFT TIRNAKlar ve 1 sayısını silebilirsiniz.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(43 satır)
 
Teşekkür ederim. Şimdi deneyeceğim. Ama şunu da belirtmeden geçemeyeceğim.
Elinize sağlık @Ömer BARAN hocam. Desteğiniz için minnettarız.
Minnettar olmak ağır ve altı dolu bir ifadedir. Çok kolay kullanılmamalıdır. En azından benim açımdan öyle. Özellikle bu ifadeyi kullanmamın nedeni şudur:
Ekran Alıntısı.webp

Yazdığınız kodun neredeyse yarısı yeşil renkte. Sadece kodu yazıp geçebilirdiniz. Yine destek vermiş olurdunuz. Ama bu şekilde öğretme yolunu seçiyorsunuz. Hem de hiç tanımadığınız insanlara. Çok da faydalı oluyor gerçekten bu açıklamalarınız. Bu yüzden minnettarım. Bu yüzden daha fazla saygı duyuyorum emeğinize.
Çok teşekkür ederim.
 
Moderatörün son düzenlenenleri:
Eyvallah, sağ olunuz
Öğrenme arzusunu görünce dayanamadım ve tek tek açıklama ekledim.

Makroya gelince;
-- Rastlayabileceğiniz muhtemel sorun ancak, RUHSAT sayfasındaki sütunlardan,
BARAN sayfasına aktarılmayacak ancak gizlenmemiş sütunlar olması durumudur.
-- Bunun çözümü için; If r.Cells(Rows.Count, "D").End(3).Row > 3 Then satırı ile Else satırı arasında düzenleme yapılması
ya da RUHSAT sayfasında, aktarıma tabi tutulmayacak sütunlarının gizlenmesi için koda ilave yapılması gerekecektir.
 
@Ömer BARAN hocam şimdi fark ettim. Süreç filtresi sanırım hatalı sonuç döndürüyor. Şöyle ki;
Ekran Alıntısı_2.webp

Mimari Kontrol seçildiğinde 13 tane sonuç veriyor. Üstteki resimde kırmızı ile işaretlediğim yerleri göstermesi gerekiyordu sadece. Variable sekmesinde de şu şekilde çünkü:
Ekran Alıntısı_4.webp
Ekran Alıntısı_4.webp

Ruhsat sekmesinde manuel filtreleme yapınca da dönen sonuç şu şekilde:
Ekran Alıntısı_3.webp


Aslında macro ya baktığımda bir sorun göremedim. 4'den küçükler için 11 numaralı sütuna("K" sütununa), 4'den büyükler için de "L" sütununa bakıyor(olması gerektiği gibi)
Ekli dosyayı görüntüle hesaplama.xlsm
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sanırım kuralda bir sıkıntı var. Önce liste kutusu 1'e (yani mevkii) bakıldığı için onların da hepsi seçili olduğunda hepsini(tüm sonuçları) getiriyor. İkinci sıradaki süreç bölümünü ilkinin üzerine filtrelemiyor.
Ben baktım ama bunun düzeltimi beni aştı maalesef.
Nasıl yapabiliriz?
 

Ekli dosyalar

  • Ekran Alıntısı_5.webp
    Ekran Alıntısı_5.webp
    4.6 KB · Görüntüleme: 1
Moderatörün son düzenlenenleri:
Yanlış düşünmüyorsam;
Case 2 'nin hemen altındaki 2 adet If.... satırında
If a<=... kısımlarını If aa<=... olarak değiştirmek gerekiyor.
Bu değişiklikleri yaparak kontrol eder misiniz?
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst