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

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:
You must log in to view content
(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 Sayın @evuye.

Anladığım kadarıyla;
-- Filtreleme sayfasındaki Onay Kutularını (OqtionButton) işaretleyerek
Ruhsat sayfasında filtre uygulamak istiyorsunuz. Doğru mudur?
-- Şayet cevabınız "EVET" ise; diyelim filtre yapıldı,
filtre sonucunda görünür kalan verileri Filtreleme sayfasında listelemek mi istiyorsunuz?
-- Listelenecekse, hangi sütunlardaki bilgiler listelenecek?
.
 
Sayın @evuye

Sorulan sorulara cevap vermeyip, makro kaydet kodu göndermişsiniz.
Soruları net cevaplarsanız daha hızlı sonuca ulaşırsınız.
Orjinal dosyayı koyduğum için anlaşılabileceğini düşünmüştüm.
Evet "Ruhsat" sekmesine filtre uygulamak istiyorum.
Uyguladığım filtreyi excel dosyasındaki "Viewer" sekmesine yapıştırıyorum.
Anladığım kadarıyla sütunu belirten kod
Kod:
You must log in to view content
(1 satır)
bu.
Bunu manuel girmeyi düşünüyorum.
Hepsi bu...
 
Ben mi anlamıyorum bilemedim açıkçası.

Örnek belgenizden anladığım;
mesele filtrelenecek sütunun hangisi olduğu değil, aynı sütuna yönelik TEKLİ/ÇOKLU seçime göre filtre kriterinin belirlenmesi aslında.

Örnek belgede, Viewer isimli bir sayfa yok.
Ekteki örnek belgenin Filtreleme isimli sayfasına bakınız.
 

Ekli dosyalar

Ben mi anlamıyorum bilemedim açıkçası.

Örnek belgenizden anladığım;
mesele filtrelenecek sütunun hangisi olduğu değil, aynı sütuna yönelik TEKLİ/ÇOKLU seçime göre filtre kriterinin belirlenmesi aslında.

Örnek belgede, Viewer isimli bir sayfa yok.
Ekteki örnek belgenin Filtreleme isimli sayfasına bakınız.
İletişim problemi yaşıyoruz sanırım. Bende tam anlatamamış olabilirim. İnsan bazen kendi bildiği ve yaptığı şeyi sanki karşısındaki de biliyormuş gibi davranabiliyor. Bu yüzden gereksiz vakit kaybı yarattıysam özür dilerim. Gerçi gönderdiğiniz son dosya benim yapmayı istediğimden de öte bir şey olmuş. Gerçekten mükemmel. Ama maalesef aynı zamanda benim düzenleme kapasitemi aşan bir çalışma olmuş. O nedenle ihtiyaç duyduklarımı detaylandırdım ve Excel e aktardım. Rica etsem o şekilde düzenleyebilir misiniz? Zira bunu benim yapmam çok zor gibi duruyor....:(
Dosyanın Güncel Hali
 
...........Gerçi gönderdiğiniz son dosya benim yapmayı istediğimden de öte bir şey olmuş. Gerçekten mükemmel. Ama maalesef aynı zamanda benim düzenleme kapasitemi aşan bir çalışma olmuş. O nedenle ihtiyaç duyduklarımı detaylandırdım ve Excel e aktardım. Rica etsem o şekilde düzenleyebilir misiniz? Zira bunu benim yapmam çok zor gibi duruyor....:(
Cevabınızın, yukarıda alıntıladığım kısımla ilgili cevabım şudur:
İşte sorular gerçek belgeyle aynı yapıda olmalı ve istenilen sonuç tüm durum seçeneklerini içerir örnek veriler içermeli ve
her durum seçeneğine ilişkin net açıklama yazılmalı ki gerçek belgeye uyarlama sorunu yaşanmasın.

Hele şunu sorayım, aldığım cevabı kendime göre düzenleyerek gerçek belgeme uyarlarım gibi
bir düşünceyle hazırlanmış örnek belge ve isteklerin karşılığında verilen cevaplar, ihtiyacı karşılamadığı gibi
cevap vermek için harcanan emek/zaman da boşa gitmiş oluyor.

Ekteki belgeyi inceleyiniz. Sanırım belgenizi bir seviye daha üste taşıdım.
Amacım hayal etmeniz/excel'in olanaklarından daha fazla yararlanılabileceğini görmeniz.

İşlemler, belgenize eklediğim ve BARAN adını verdiğim sayfada gerçekleştiriliyor.
SÜREÇ olayını anlamadığım için SÜREÇ ile ilgili seçenekleri İŞARETLEMEDEN denemeler yapınız.
O kısmı da anlarsak belgeyi/kodları güncelleriz, mesele değil.
BARAN adlı sayfaya eklediğim nesnelerde yazılı seçeneklerin kaynağı FORMÜLLER menüsündeki AD TANIMLAMALARI bölümünde.
Yani VARIABLES sayfasındaki alanlar için AD TANIMLAMALARI oluşturdum ve bu TANIMLI ADLAR üzerinden de
sayfadaki listeler verilerini VARIABLES sayfasından almaktadır. O sayfadaki verileri güncellediğinizde nesnelerdeki veriler de güncellenecektir.

LOG kaydı olarak adlandırdığınız diğer konu sayfasındaki işlemler için,
belgeniz biraz daha olgunlaştığında ilgili konu sayfasının kilidi açılır ve o konuya tekrar dönülebilir elbette.

İyi çalışmalar dilerim.
 

Ekli dosyalar

Merhaba Ömer Bey,
Öncelikle çok teşekkür ederim.
Hele şunu sorayım, aldığım cevabı kendime göre düzenleyerek gerçek belgeme uyarlarım gibi
bir düşünceyle hazırlanmış örnek belge ve isteklerin karşılığında verilen cevaplar, ihtiyacı karşılamadığı gibi
cevap vermek için harcanan emek/zaman da boşa gitmiş oluyor.
Alıntıladığım kısımda söylediğiniz yolu izleme nedenim şudur:
Bu platformda birçok kişiye destek veriyorsunuz(Siz ve az sayıdaki arkadaşlarınız). Vip üyelik vs(ki bilmiyorum kaç kişi bu şekilde üye oluyor) bu emeğinizin değil karşılığı vermek, sitenin maliyetini dahi çıkarmıyordur diye düşünüyorum. Ki farketmişsinizdir benim de yapmaya çalıştığım bu excelden maddi bir çıkarım söz konusu değil. Çalıştığım Belediyenin İmar Müdürlüğüne faydalı olması için uğraşıyorum.
O nedenle de işi size tarif edip yaptırmaktan hicap duyuyorum. Bir çıkış yolu veya sizi çok uğraştırmayacak bir örnekten yola çıkarak kendim yapmaya çalışıyorum. Karşılıksız olarak yardım almaya utanırken, işi sipariş eder gibi söyleyip bu konuda sizleri uğraştırmak bana biraz garip geliyor. Ama sanırım böyle yapınca da sizin daha fazla vaktinizi almış oluyorum. Bilemedim...
Neyse fazla uzattım sanırım kusura bakmayın.

Bu arada yaptığınız bu çalışma da o kadar iyi olmuş ki ondan da vazgeçemiyorum...:)

- "SÜREÇ" bölümü ile ilgili excel içinde yaptığınız açıklama birebir doğru. Filtreleme tanımladığınız şekilde olursa çok güzel olur.
- Bir de görsel olarak bazı bölümler üst üste binmişler ben denedim ama düzeltemedim.
Ekran Alıntısı.webp
- Ad tanımlamasında değişiklik yaptığımda (örneğin x mimar ve y mimar ı çıkarttığımda) o isimler ilgili bölümden kalkıyor ama yanındaki onay kutuları duruyor. Onu da kaldırabilir miyiz merak ediyorum.
- Son olarak ve en önemlisi, "Ruhsat" sekmesine yeni sütun ekler veya silersek yada mevcut sütunlardan başkalarını da filtrelemeye dahil edecek olursak bunu nasıl yaparız?

Ayrıca bu desteğinize nasıl bir karşılık verebilirim bilmiyorum ama çok isterim.

Tekrar teşekkürler...
 
Moderatörün son düzenlenenleri:
SİZ ve AZ SAYIDAKİ ARKADAŞLARINIZ....:
Forumumuzun üye sayısıyla mukayese edildiğinde,
forumumuzda soruları cevaplayan ekip arkadaşlarımızın sayı/bilgi/tecrübelerinin yeterli olduğunu söyleyebilirim.
Beklentimiz ise; üyelerimizin de birbirlerine destek vermesini görmek elbette. Buna bir engel de yok.
"Forum" dediğimiz de; bilginin/tecrübenin üyeler arasında, gönüllülük esasıyla paylaşılarak artırılması değil mi?

VIP ÜYELİK / KATKI:
Üyelerimizin tümünün VIP üyelik almasını elbette arzu ederiz.
Ayrıca; üyelerimizden, paket halinde olmak üzere, başı/sonu belli olacak şekilde tüm isteklerini tek tek sayarak ÜCRETLİ DESTEK TALEBİ oluşturması mümkündür.
Bu işlem için, forumun sağ üst kısmı veya üst menüdeki DESTEK TALEBİ düğmesinin tıklanarak işlem adımlarının izlenmesi yeterlidir.

Bizim için vereceğiniz en önemli katkı ise; forumumuzda daha sık ve uzun süreler çevrimiçi kalmanız ve çevrenizdeki Excel kullanıcılarını forumumuzdan haberdar etmeniz olacaktır.

BARAN adını verdiğim sayfadaki NESNELER:
-- GELİŞTİRİCİ menüsündeki, ÜÇGEN-CETVEL simgesi olan TASARIM MODU düğmesine tıklayın.
-- Artık nesneleri tek tek seçerek boyutlandırma/konumunu değiştirme işlemlerini yapabilirsiniz.
-- Bu konumlandırma işlemini tamamladıktan sonra GİRİŞ menüsünde en sağdaki BUL-SEÇ kısmından ÖZEL GİT >> NESNELER 'e fareyle tıklayın.
-- Böylece sayfadaki tüm nesneler seçili hale gelecektir.
-- Seçili nesnelerden bir tanesine fareyle SAĞ tıklayıp, BOYUT ve ÖZELLİKLERi seçin.
-- Sağ tarafta görünecek ayar kısmından ÖZELLİKLER >> "Hücrelerle Taşıma ve Boyutlandırma" seçeneğini işaretleyin.
-- Son olarak TASARIM MODU düğmesine tekrar tıklayarak işlemi tamamlamış olursunuz.
Artık satır yüksekliği/sütun genişliği ayarlamaları sırasında sözkonusu nesneler yer değiştirmeyeceektir.
Aslında gönderdiğim belgede bu ayar yapılmış durumda idi, neden bozulduğunu anlamadım. Neyse; işlemi tarif ettim zaten, kendiniz halledersiniz.

AD TANIMLAMALARI ve NESNELERİN OTOMATİK OLARAK GÜNCELLENMESİ:
VARIABLES sayfasında, farklı nesneye kaynaklık teşkil eden herbir listenin ayrı sütunlarda olmasını sağlarsanız,
AD TANIMLAMALARINDA kullanılacak formüllerde yapılacak düzenlemeyle, nesnelerin, veri değişikliklerine göre güncellenmesi halledilebilir.
Mecvcut belgede TASARIM MODU seçileyken, ListBox'ları teker teker seçip TASARIM MODU düğmesinin sağındaki ÖZELLİKLER düğmesine tıklarsanız,
nesnenin veri aldığı alanı -ki ad tanımlamalarında verilen isimler kullanılıyor- ListFillRange kısmının karşısında görebilirsiniz.
Konu büünlüğünün bozulmaması bakımından ve farklı bir konu olması nedeniyle bu konu için;
belgenizin, yukarıda belirttiğim düzenlemelerin yapılmış son halini örnek belge olarak ekleyip yeni bir konu açarak oradan devam etmeniz yerinde olur.

YENİ FİLTRE SÜTUNLARI ve KRİTERLER EKLENMESİ:
Bunun için, son gönderdiğim belgedekine benzer şekilde nesneler oluşturup, yeni AD TANIMLAMALI yaparak bu nesnelere veri aldırmak mümkün.
Yeni eklenen nesneleri filtrede kullanmak için; gönderdiğim son belgedeki kod'da her filtre alanı için, benzer şekilde birer tane
For.... Next döngüsü eklenmesi (gönderdiğim belgedeki örneğin For ms = 0 To madet - 1.....Next gibi) ve bu ilave durumla ilgili bazı küçük kod düzenlemeleri yapılması gerekebilir.
.
 
Ömer Bey öncelikle şunu belirteyim;
"Siz ve az sayıda arkadaşlarınız" derken bir eleştiri yapmamıştım. Aksine özverinizi takdir ettiğim ve saygı duyduğum için böyle bir ifade kullandım.
Ayrıca forumda oldukça çevrimiçi bulunuyor ve çevreme de tavsiye ediyorum. Ücretli destek konusunda da geçenlerde bir arkadaşımı(Kubilay) size yönlendirdim. Bilmiyorum görüştünüz mü. Ben bu tarz platformların varlığını sürdürülmesini çok istiyor ve diliyorum. Şu an yaptığım projeden sonra belediye geneli için benzer bir şey yapmayı ve buna bütçe ayrılması için yönetimi ikna etmeyi planlıyorum. Umarım olur.

Dosya ile ilgili olarak da;
- Nesnelerdeki değişikliği dediğiniz gibi yaptım sorun düzeldi.Teşekkürler
- Variables sekmesindeki tüm listeleri ayrı sütunlara yerleştirdim. Dediğiniz gibi dosyayı toparlayınca ayrı konu açabilirim. Burada ki amacım zaten isimler olmazsa yanındaki kutunun da olmaması
- Süreç bölümünde ki filtrelemeyi, açıklamada yazdığınız gibi yapmayı istiyorum. Kodlarda değişikliğe giderek yapmaya çalıştım ama başaramadım
- Dosyanın Güncel Hali(v.8.4)

Yardımınız için çok teşekkür ederim...
 
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 Kutusu / AD TANIMLAMALARI ilişkilerini oluşturdum.

Size düşen diğer kriter ONAY KUTUSU / LİSTE KUTUSU / AD TANIMLAMALARI işlemlerini, eklediğim belgeye göre benzeri şekilde tamamlamak.

Nesne adlandırmalarındaki isimleri ben Variables tablosunda soldan sağa doğru sırasına göre ilk üç unsur için yaptım,
Örneğin; Onay Kutusu 1, Liste Kutusu 1 (MEVKİ), buna ilişkin AD TANIMLAMALARI ise Mevkii, Surec, RuhsatTipi şeklinde oluşturdum.
Bu ad tanımlamalarıyla nesne arasındaki ilişkiyi, ilgili liste kutusuna fareyle sağ tıklayıp DENETİM BİÇİMLENDİR düğmesine
tıkladığınızda GİRDİ ARALIĞI kısmından görebilir/düzenleyebilirsiniz.

Bence bu konu sayfasındaki, çoklu kritere göre filtreleme işleminden beklenen amaç hasıl olmuştur ve
konu bütünlüğüyle ilgili olmayan mevzulara girilmiş durumda olduğundan bu konu sayfasını kapatmak gerekir.

Yukarıda değindiğim yeni nesneler/bu nesnelere ait kodlamalar/ad tanımlamaları konusunda işinizi halledemezseniz
herbir durum/sorun için ayrı konu açarak oradan devam etmek yerinde olur diye düşünüyorum.

Daha evvel de belirttiğim gibi ExcelDestek.Com , Excel konusunda her türlü soruya/soruna çözüm bulmak için var.
Ben, ekip arkadaşlarım ve diğer üyelerimiz ellerinden geldiği/bilgi yettiği sürece her soru/konu ile ilgilenmeye devam edecektir.

İyi çalışmalar dilerim.
 

Ekli dosyalar

Çözüm
Merhaba @Ömer BARAN Hocam,
Size düşen diğer kriter ONAY KUTUSU / LİSTE KUTUSU / AD TANIMLAMALARI işlemlerini, eklediğim belgeye göre benzeri şekilde tamamlamak.

Nesne adlandırmalarındaki isimleri ben Variables tablosunda soldan sağa doğru sırasına göre ilk üç unsur için yaptım,
Örneğin; Onay Kutusu 1, Liste Kutusu 1 (MEVKİ), buna ilişkin AD TANIMLAMALARI ise Mevkii, Surec, RuhsatTipi şeklinde oluşturdum.
Bu ad tanımlamalarıyla nesne arasındaki ilişkiyi, ilgili liste kutusuna fareyle sağ tıklayıp DENETİM BİÇİMLENDİR düğmesine
tıkladığınızda GİRDİ ARALIĞI kısmından görebilir/düzenleyebilirsiniz.
  • Söylediğiniz gibi filtrelenecek 2 unsuru daha ekledim.
  • AD Tanımlamalarını oluşturup bu 2 unsurun Liste Kutuları ile ilişkilendirdim.
  • Macro bölümünde mevcut onay kutusu ve listenin kodlarını kopyalayarak yeni iki unsur için ilgili macroları atadım ama sonuç alamadım. "Hepsi" ne tıkladığımda tümü seçilmiyor ve alttaki liste elemanlarının birine tıklayınca hata alıyorum. (Set mmCB = brn.Shapes("Onay Kutusu 4").OLEFormat.Object "Onay Kutusu 4 ve 5 şeklinde devam ettim. Emin değilim ama sanırım bu yüzden olmadı.)

Bence bu konu sayfasındaki, çoklu kritere göre filtreleme işleminden beklenen amaç hasıl olmuştur ve
konu bütünlüğüyle ilgili olmayan mevzulara girilmiş durumda olduğundan bu konu sayfasını kapatmak gerekir.
Mümkünse bu haliyle (oluşturulan 5 unsur ile) filtrelemeyi tamamlayabilirsek sonrasında nasıl revize edeceğim ile ilgili söylediğiniz gibi başka konu başlıkları altında destek arayabilirim.
Güncal Dosya (8.6)

Saygılarımla...
 
Eklediğim ekran görüntüsündeki gibi, eklediğiniz iki kriter nesne grubundaki nesne isimlerini düzeltin.
Mimari Kontrol için Onay Kutusu ve Liste kutusunu 4, sondaki BET... için de 5 sayılarını verin.

Ayrıca; kodlarda da birkaç küçük şeyi atlamışsınız, ikinci resimdeki gibi önceden kalma c harfleri var onları kontrol edin.
1575223077814.webp
1575223429468.webp
 
Moderatörün son düzenlenenleri:
Bu kadar basit hatalarıma o kadar çok kızıyorum ki...
Balık vermeyip tutmayı öğrettiğiniz için çok teşekkür ederim. Gerekli düzeltmeleri yaptım.
Ancak sanıyorum "Sonuçları Getir" butonunu yukarıdaki 5 unsur a göre aktifleştiremem(Filtreleme). Bu konuda da yardımcı olur musunuz @Ömer BARAN hocam.
Güncel Dosya(v.8.7)
 
Oluyor bazen böyle şeyler. Tecrübe de bu şekilde birikiyor.

SÜREÇ konusuna ilişkin açıklama yazdınız ama ben bu açıklamaları anlamadığımı daha evvel belirtmiştim.

Son belgeye eklediğiniz yeni seçeneklerden anlamayacağım biri çıkmaz umarım.
Bilgisayar başına geçtiğimde bakacağım ve SÜREÇ kısmı hariç cevabı ancak gece geç vakit yazabilirim.
 
İşlemlerinin tümünün uygulandığı belge ekte.

Eklediğim belge, bu cevaptan sonra üzerinde durulan hususlara göre güncellendi. >> 02.12.2019 21:08
.
 

Ekli dosyalar

  • Ekran Alıntısı_2.webp
    Ekran Alıntısı_2.webp
    6.4 KB · Görüntüleme: 25
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
28
Üst