Çözüldü OptionButton ile ListBox Filtreleme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

fledermaus

Site Üyesi
Excel Versiyonu
Excel 365
Excel Sürümü
64 Bit
Excel Dili
İngilizce
Herkese Merhabalar,

Ekte paylaşmış olduğum makro çalışma dosyasında daha önceden oluşturulmuş olan listbox nesnesindeki filtrelemelere ek olarak;

option button olarak eklemiş olduğum kriterleri de ( ileri filtreleme frame ine bağlı olarak) genel filtrelemeye dahil etmek istiyorum.

Option button olarak eklemiş olduğum verilerin data sayfasındaki "L" sütunundan aranması gerekiyor.

Ayrıca listbox da listelenen verilerin kimileri sağa kimileri sola doğru şeklinde listeleniyor ve sütun genişlikleri bazı başlık ve içeriklerinde çok geniş kalıyor.

Sütun genişliklerini orjinal sayfada olduğu göründiği gibi list box a nasıl çekebilirim ? Yada bu durumu nasıl düzeltebilirim?

Bunun dışında listbox da çıkan başlıkları bold yapmak yada farklı renk vermek gibi bir çözüm var mıdır ?

Konuyla ilgili yardımcı olabilecek birileri var ise çok memnun olurum.

Herkese yardımları için şimdiden teşekkür eder, saygılarımı sunarım.
 

Ekli dosyalar

@fledermaus

Listbox sütun genişlikleriyle ilgili kısma cevap yazayım.
-- aşağıdaki kodu, mevcut userform kodlarının en altına ekleyin,
-- aynı yerdeki ARAMA isimli kodun en sonundaki Application.ScreenUpdating = 1 kod satırının hemen üstüne
SUTUNLAR
şeklinde bir satır ekleyin.

Artık;
-- arama işlemi sırasında DataFiltre sayfasındaki sütun genişlikleri otomatik ayarlanır,
-- Listbox'un kendi genişliği de o sayfadaki sütun genişliğiyle oranlanarak otomatik ayarlanır.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(12 satır)
 
@Ömer BARAN hocam merhaba,

Umarım iyisiniz.

Söylemiş olduğunuz gibi kodları ekledim ve güncellemeleri yaptım ancak listboxdaki sütunlarda değişiklik olmuyor. Sütun genişlikleri sabit kalıyor. Tekrar bakma şansınız var mıdır?

Yardımlarınız için şimdiden çok teşekkür ederim.

Saygılarımla,
 
Bilgisayarda değilim.
Arama işlemi yapıldığında sonuçlar DataFiltre sayfasına yazdırılıyor.
Verdiğim kod ise bu aşamada,
DataFiltre sayfası sütunlarını otomatik daraltıyor, ardından da sütun genişliklerinin toplam genişlik oranına göre, listbox sütunlarını da bu genişlik oranlarına göre ayarlıyor.
Sorun olmaması gerekir. Denemiştim.
 
Hocam Merhaba,

Kodları tekrar denedim söylemiş olduğunuz gibi çalışıyor ancak bazı sütunlarda genişleme olmuyor. Açıkcası sebebini anlayamadım. Mesela firma ismi aşağıdaki gibi sığmıyor. Yani yani başlıklar yada içerik sığmıyor.

Birde bazen aşağıdaki gibi hata veriyor. Bu hatayı nasıl düzeltebilirim ?


1716397310568.webp


Saygılarımı sunarım.

1716397008764.webp
 

Ekli dosyalar

Bilgisayarda değilim.
Arama işlemi yapıldığında sonuçlar DataFiltre sayfasına yazdırılıyor.
Verdiğim kod ise bu aşamada,
DataFiltre sayfası sütunlarını otomatik daraltıyor, ardından da sütun genişliklerinin toplam genişlik oranına göre, listbox sütunlarını da bu genişlik oranlarına göre ayarlıyor.
Sorun olmaması gerekir. Denemiştim.

Hocam tekrar merhaba,

Vermiş olduğunuz kodları ekledikten sonra userform ve listbox alanını genişleterek tekrar denedim ve problemi şu an için çözmüş olduğumu düşünüyorum. Tekrar teşekkür ederim.

Option butonları genel filtrelemeye ekleme konusunda (birde sütununa bağımlı combobox ekleyeceğim) yardımcı olma şansınız var mıdır?

Saygılarımla,
 
Belgenizdeki userform tasarımını tamamladıktan sonra bakılır elbet.
Userformda ekleme çıkartma yaptığınızda mevcut kodlarda da sorun yaşayabilirsiniz.
Ekleyeceğiniz neler varsa ekleyin bakalım.
 
Hocam Merhaba,

Dosya ektedir. N sütunundan sonraki sütunlardaki verileri sağa yaslayabilirsek çok memnun olurum.

Eski dosyaya ek olarak sadece bir tane combobox ve birde filtreleri temizle (ancak sadece text boxları temizliyor listbox ı temizlemiyor, açıkcası onu tam beceremedim) butonu ekledim.

Saygılarımla,
 

Ekli dosyalar

Listbox nesnesinde sütunların tümü aynı anda sağa veya sola yaslanabilir.
Sutunların bazıları için farklı hizalama işlemi sadece Listview nesnesinde mümkün.

Arama işleminde İLERİ FİLTRE // L SÜTUNU // M SÜTUNU parçaları
VE anlamında mıdır yoksa VEYA anlamında mı GRUPlara ayrılmıştır?

Eğer GRUPlamanın bir amacı yoksa tavsiyem;
Listbox sütun genişliklerini SABİT hale getirip, ayarlayacağınız sütun genişliklerine uygun genişlikte olacak şekilde,
listbox'un hemen üstüne bir veri satırı gibi uygun nesneleri (combobox/textbox) sıralayıp o şekilde filtreleme yapılmasını sağlamak.
Örneğin L sütunu için neden optionbutton nesneleri kullanılsın ki, bir adet combobox yeterlidir.
 
Hocam Merhaba,

#Arama işleminde İLERİ FİLTRE // L SÜTUNU // M SÜTUNU parçaları
VE anlamında mıdır yoksa VEYA anlamında mı GRUPlara ayrılmıştır?

Cevap : VE anlamındadır yani L SÜTUNU // M SÜTUNU parçaları "comboboxlar/textboxlar" işlendikçe filtreleme benzersiz hale gelmektedir.

#Örneğin L sütunu için neden optionbutton nesneleri kullanılsın ki, bir adet combobox yeterlidir.

Cevap : ilgili dosyada L SÜTUNU ana servisler // M SÜTUNU ise alt servisler olarak işlendiği için userform özellikle bu şekilde oluşturulmuştur. (gelecekte ana servislere yeni hizmet eklenme (yani yeni option button) durumu çok nadir gerçekleşecek ( belki iki tane için ilerisi için boş ekleyebiliriz) yada hiç gerçekleşmeyecektir.


Saygılarımla,
 
.....................
Listbox sütun genişliklerini SABİT hale getirip, ayarlayacağınız sütun genişliklerine uygun genişlikte olacak şekilde,
listbox'un hemen üstüne bir veri satırı gibi uygun nesneleri (combobox/textbox) sıralayıp o şekilde filtreleme yapılmasını sağlamak.
Örneğin L sütunu için neden optionbutton nesneleri kullanılsın ki, bir adet combobox yeterlidir.

Demek istediğim aşağıdaki görseldeki gibi (filtre için kullanılan textbox/combobox hangisi ise o nesneyi o sütuna göre konumlandırma) idi.

Hatta bana kalsa Listboxun üstüne listbox sütun genişliklerine göre her sütun için
birer tane LABEL ekleyip, bu label nesnelerine başlıkları yazardım ve Listboxta da başlıkları göstermezdim.

1716477751782.webp
 
Hocam Tekrar Merhaba,

Bu söyledikleriniz aklımdan geçti ancak data sayfasında kullanacağım veri içeriklerinin çok farklı olması ve user formu kullanacak kişinin çalışma sistemine bu filtrelemenin daha uygun olacağı ve kanaatiyle bu şekilde yapılandırdım.

Bundan sonra oluşturmaya çalışacağım farklı bir userform olacak ve o userformda listbox yerine listview nesnesini kullanacağım.

Bu tavsiyelerinizi yapılandırmaya çalışacağım listview nesnelerinde deneyeceğim.

Eğer mümkün ise en son paylaşmış olduğum form üzerinde kodlamaları yapmak mümkün müdür ?

Saygılarımı ve sevgilerimi sunarım,
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst