Çözüldü Listboxta iki ayrı listeleme yapmak

dimple

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba dosyamda listeleme yapmak istiyorum .Listeleme butonu ile açılan yeni userform da bir listbox ı iki ayrı listeleme için kullanmak istiyorum . Ama Kullandığım kodlarla bir sonuca varamadım. Tercih türüne göre seçim yapıldığında liste başlıklarını liste sayfasından alarak yapacak listeyi ve yazdırmak veya Excel liste sayfasına gitmek. kayıt türüne göre seçim yapıldığında liste başlıklarını data sayfasından alarak listeleme yapacak ve her iki listeme sonuçlarını label24 e gösterebilmek. Şu şekilde iki
Kod:
You must log in to view content
(10 satır)
kod kullandım
VBA:
You must log in to view content
(33 satır)
 

Ekli dosyalar

Merhaba @dimple .

İlk belirteceğim husus TC kimlik numarası sütunlarıyla ilgili.
Anladığım kadarıyla UserForm üzerindeki TextBox'a bir/birkaç karakter sayı yazarak
TC Kimlik Numarası sütunlarında İÇERİR şeklinde filtreleme yapmaya çalışıyorsunuz.
Ancak buradaki sorun, TC sütunlarındaki veriler SAYI olduğundan ve SAYIsal değerler için İÇERİR şeklinde filtreleme yapamayacağınız.
Bunun çözümü için, sayfalardaki TC sütunlarını önce METİN olarak biçimlendirmeniz, ardından da mevcut kayıtların herbiri için birer kez
F2+ENTER işlemi yapmanız gerekecek.

Sorun/istek sanırım Userform2 ile ilgili.
-- Her hal ve taktirde filtrelleme işlemi DATA sayfasında uygulanacak değil mi?
-- Filtreleme sütunu ise. Combobox5'ten seçim yapılmışsa M sütunu, Combobox6'dan seçim yapılmışsa da N sütunu değil mi?
-- Filtre sonucunda kalan veriler LİSTE sayfasına aktarılıp, UserFormda da sadece bu veriler görünecek.
-- Yanında ARA yazılı TextBox1 ise TC kimlik numaralarının olduğu B sütunu için (İÇERİR şeklinde) filtreleme kriteri olacak doğru mudur?

Açıklamaları, benim yukarda yaptığım şekilde, userform adı, userform üzerindeki nesne adı, belge için sayfa adı, sütun adı gibi
net konum bilgisi vererek yazarsanız daha hızlı sonuca ulaşılır.

.
 
Merhaba @dimple .

İlk belirteceğim husus TC kimlik numarası sütunlarıyla ilgili.
Anladığım kadarıyla UserForm üzerindeki TextBox'a bir/birkaç karakter sayı yazarak
TC Kimlik Numarası sütunlarında İÇERİR şeklinde filtreleme yapmaya çalışıyorsunuz.
Ancak buradaki sorun, TC sütunlarındaki veriler SAYI olduğundan ve SAYIsal değerler için İÇERİR şeklinde filtreleme yapamayacağınız.
Bunun çözümü için, sayfalardaki TC sütunlarını önce METİN olarak biçimlendirmeniz, ardından da mevcut kayıtların herbiri için birer kez
F2+ENTER işlemi yapmanız gerekecek.

Sorun/istek sanırım Userform2 ile ilgili.
-- Her hal ve taktirde filtrelleme işlemi DATA sayfasında uygulanacak değil mi?
-- Filtreleme sütunu ise. Combobox5'ten seçim yapılmışsa M sütunu, Combobox6'dan seçim yapılmışsa da N sütunu değil mi?
-- Filtre sonucunda kalan veriler LİSTE sayfasına aktarılıp, UserFormda da sadece bu veriler görünecek.
-- Yanında ARA yazılı TextBox1 ise TC kimlik numaralarının olduğu B sütunu için (İÇERİR şeklinde) filtreleme kriteri olacak doğru mudur?

Açıklamaları, benim yukarda yaptığım şekilde, userform adı, userform üzerindeki nesne adı, belge için sayfa adı, sütun adı gibi
net konum bilgisi vererek yazarsanız daha hızlı sonuca ulaşılır.

.
Merhaba Sayın Ömer BARAN bey sizinde belirttiğiniz gibi sorun ve isteklerimi ilk 3 madde de belirtilmiş olduğunuz gibi olacak .
Son madde de belirtilen "Yanında ARA yazılı TextBox1 ise TC kimlik numaralarının olduğu B sütunu için (İÇERİR şeklinde) filtreleme kriteri olacak doğru mudur" soruyu ve kodları güncellemeden yüklemişim kusura bakmayın o bölümde texbox25 ve rapor al bölümü gibi olacak TC Kimlik Numarasında dayalı bir arama yok.

Sorun/istek sanırım Userform2 ile ilgili.
-- Her hal ve taktirde filtrelleme işlemi DATA sayfasında uygulanacak değil mi?
-- Filtreleme sütunu ise. Combobox5'ten seçim yapılmışsa M sütunu, Combobox6'dan seçim yapılmışsa da N sütunu değil mi?
-- Filtre sonucunda kalan veriler LİSTE sayfasına aktarılıp, UserFormda da sadece bu veriler görünecek.
Bu sorulara cevabım evet olacak ve tercih türüne göre olan listelemeyi yazıcıdan alabilmek veya liste sayfasında yazdırabilmek .
 
@dimple

Userform2'deki 2 Combobox nesnesine yönelik kodlama yaptım.
İlgili Combobox'larda seçim yapıldığında işlem gerçekleşir (düğme filan kullanılmasına gerek yok.

ARA düğmesiyle ilgili isteği anlayamadığım için onunla ilgili bir işlem yapmadım.
Combobox5 ve Combobox6'daki seçimleri değiştirerek sonucu gözlemleyin.
Sanırım istediğiniz böyle.

.
 

Ekli dosyalar

Sayın Ömer BARAN bey yardımınız için çok teşekkür ederim. Her iki şekilde listeleme yapıyor tamam. Listbox taki başlıklar her iki listeleme de de data sayfasındaki başlıklardan oluşuyor. Tercihe göre listeleme yapınca ilk mesajımda gönderdiğim liste sayfasına göre yapacak yani bazı sütunlar çıkmış olacak. Ve tercih türüne göre listelemeyi yazdırabilmek.
 
@dimple

Ben tüm başlıkların aktarılacağını düşünmüştüm.
Eklediğim belgede, UserForm2'ye ait kodların bulunduğu bölümdeki FILTRELE kod blokunu aşağıdakiyle değiştirin.
Böylece LİSTE sayfasına, sadece A:E ve H:L sütunları aktarımış olur.

VBA:
You must log in to view content
(14 satır)
 
Sayın Ömer BARAN çok teşekkür ederim .Konu açarken böyle bir sonuç düşünmemiştim. Planlamam şu şekildeydi .Kayıt türüne göre listeleme de Data sayfasının başlıklarına göre , tercih türüne göre listeleme ise liste sayfası başlıklarına göre listeme yapacaktı. Benim heyecanım ve aceleciliğim işte. Yazdırma işlemini tamamlayabilirsek bu şekilde kullanayım artık daha fazla zahmet vermek istemem. Emeğinize sonsuz teşekkür ederim saygılarımla.
 
@dimple

Daha evvel eklediğim belgede, YAZDIRma düğmesinin kod bölümünde 2 kod satırı var.

İstediğiniz;
-- YAZDIRma ise ...PrintOut satırının,
-- BASKI ÖNİZLEME yapmak ise de ....PrintPreview satırının,
sol başındaki TEK TIRNAK işaretini silmeniz yeterli olur.

.
 
Kusuruma bakmayın çok acemiyim bu konuda .Yazdırma işlemini yaptım. Önizleme yapınca userform kapanmadığı için önizlemeyi göremedim. Önemli olan yazdırmaktı. Çok çok teşekkür ediyorum Sayın Ömer BARAN bey hakkınızı helal edin.(Yeşil fontlu olan kodalar sanırım pasif onları silmem dosyayı etkilemez değil mi)
 
Aynen, VBA ekranında yeşil renkli gördüğünüz satırların bir işlevi yok silinebilir.

Baskı önizlemeye gelince;
UserForm2'yi doğrudan açıyorsanız sadece UserForm2'nin,
UserForm2'yi başka UserForm üzerindeki bir düğmeye tıklayarak açtırıyorsanız her iki UserForm'un
SHOWMODAL özelliğini FALSE olarak değiştirmeniz yeterli olur.

Bu özelliği görüntülemek için VBA üst menüden PROPERTİES kısmını aktifleştirip
ilgili userformu seçtiğinizde sol tarafta göreceğiniz listeden görebilirsiniz.
Bu ekranın görüntüsü aşağıdakii konu sayfasındaki 2 numaralı cevapta var (bir göz atın isterseniz)

 
Ayrıntılı bilgilendirme için teşekkür ederim ,işlemleri yaptım . Ama önizleme yapınca userform kilitleniyor . Ancak görev yöneticisinden excelden çıkabiliyorum . "Kayıt türüne göre listeleme de Data sayfasının başlıklarına göre , tercih türüne göre listeleme ise liste sayfası başlıklarına göre listeme yapacaktı". Konusu üzerinde biraz uğraşayım bakalım birşeyler yapabilecek miyim ?
 
@dimple

Denemeden cevap yazma alışkanlığım yoktur.
Denemelerinizi düzenlemelerinizi benim gönderdiğim elge üzerinden yapın derim.

Ayrıca, filtreleme kaynağının neresi olacağı değil de yoksa,
iki koşullu (bir sütun için Combobox5'e göre, diğer sütun için Combobox6'ya göre)
bir filtreleme mi istiyorsunuz? Söylediğinizden böyle bir sonuç çıkartıyorum çünkü.

Eğer isteğiniz tam olarak buysa, benim gönderdiğim belge üzerinde, UserForm2'nin kod bölümünde yer alan
Combobox5_Change ve Combobo6_Change kod bloklarında sadece FİLTRELE satırı kalsın diğerlerini silin.

.
 
Evet bu şekilde ,"iki koşullu (bir sütun için Combobox5'e göre, diğer sütun için Combobox6'ya göre)" combobox5 ve combobox6 nın içeriği ekteki resimdeki gibi olmalı yani farklı
 

Ekli dosyalar

  • combobox5.webp
    combobox5.webp
    18.1 KB · Görüntüleme: 4
  • combobox6.webp
    combobox6.webp
    14.8 KB · Görüntüleme: 3
@dimple

Benim 4 numaralı cevap ekinde gönderdiğim örnek belgede;
-- FILTRELE kodunu, 6 numaralı cevaptaki gibi değiştirip,
-- Combobox5_Change ve Combobox6_Change kod bloklarında (her ikisinde) 12 numaralı cevapta belirttiğim gibi değiştirip,
-- UserForm2'deki Combobox5'te KESİN KAYIT, Combobox6'da B seçmişseniz,
M sütunu KESİN KAYIT ve N sütunu B olan kayıtlar (sıra no 1, 2 ve 4 olanlar) listelenmiş olması gerekir.

En iyisi yeni belge ekleyeyim, bundan sonraki kontrolleri, açıklamaları, yazışmaları bu belge üzerinden yapın.


.
 

Ekli dosyalar

Merhaba Sayın Ömer BARAN bey dosyayı kontrol ettim sizi çok uğraştırdım . Userformu ilk açtığımda data sayfasındaki sütun başlıkları şeklinde geliyor. Ama combobox5 ile listeleme yapınca liste sayfasının sütun başlıklarını alıyor.(yani data sayfasındaki M-Q sütunları arasında ki başlıklar görünmüyor.) combobox6 ile seçiminde listeleme doğru çalışıyor. Combobox6 ile listeleme yaptıktan sonra tekrar combobox5 ile seçim yapınca data sayfasındaki M-Q sütunları arasındaki başlıklar yine görünmüyor.
 
Ben isteğinizi anlayabilmiş değilim, kusura bakmayınız.

.
Dosyayı kullanacak olan biri olduğum için nerede hatalar olduğunu görebiliyorum karışık anlatmış olabilirim kusura bakmayın . combobox5 ile listeleme yapınca data sayfasının sütun başlıklarına göre, combobox6 ile listeleme yapınca ise liste sayfasının sütun başlıklarına göre listboxta görünecek.
 
Comboboxlardan birinde değişiklik yapıldığında LİSTE sayfasının içeriği bütün olarak siliniyor.
Bu nedenle "LİSTE sayfasının başlıklarına göre" diye bir şey yok.

Şu Comboboxta seçim yapınca DATA sayfasındaki A:F ve J:M sütunları,
diğer comboboxta seçim yapınca DATA sayfasındaki B:E ve K:T sütunları
aktarılmalı gibi açıklamalısınız. Yani açıklamalar LİSTE sayfasına göre olmaz, DATA sayfasına göre yazılmalı.
Ayrıca iki Combobox'ta da yapılmış bir seçim mevcut olduğunda ne olacak?

İki Combobox'a aynı anda uyan veri satırları mı gerekiyor yoksa sadece o anda seçim yapılan Combobox hangisiyse sadece ona göre mi filtre uygulanacak bunu netleştirmeniz lazım.

.
 
Comboboxlardan birinde değişiklik yapıldığında LİSTE sayfasının içeriği bütün olarak siliniyor.
Bu nedenle "LİSTE sayfasının başlıklarına göre" diye bir şey yok.

Şu Comboboxta seçim yapınca DATA sayfasındaki A:F ve J:M sütunları,
diğer comboboxta seçim yapınca DATA sayfasındaki B:E ve K:T sütunları
aktarılmalı gibi açıklamalısınız. Yani açıklamalar LİSTE sayfasına göre olmaz, DATA sayfasına göre yazılmalı.
Ayrıca iki Combobox'ta da yapılmış bir seçim mevcut olduğunda ne olacak?

İki Combobox'a aynı anda uyan veri satırları mı gerekiyor yoksa sadece o anda seçim yapılan Combobox hangisiyse sadece ona göre mi filtre uygulanacak bunu netleştirmeniz lazım.

.
Ömer BARAN bey bir uzman gözüyle bakamadığım için açıklamalarımda karışık oldu söylediğiniz gibi. Anladığım kadarıyla Liste sayfası filtreleme sonucu gösterilen sayfa olarak kalacak. Seçime göre başlıklar değişecek
Son olarak şöyle ifade edeyim.Combobox5 ile seçim yapılınca data sayfasının A:L N:Q sütunları, (m sütununa göre arama yapıyoruz zaten yazmadım)
combobox6 ile seçim yapılınca ise data sayfasının A:L sütunlarını ,
her ikisi aynı anda seçilmişse data sayfasının A:Q sütunlarına göre listeleme yapılmış olacak . Sanırım bu sefer tam anlatabildim
 
Merhaba Sayın Ömer BARAN bey sizin kodlarınız üzerinden ufak değişiklikler yaparak Combobox5 ile seçim yapılınca data sayfasının A:Q sütunlarını
combobox6 ile seçim yapılınca ise data sayfasının A:L sütunlarını ,listeleyebiliyorum.
Biri ile seçim yapınca diğer seçim otomatik kapanıyor.(İkisi aynı anda seçim yapılamıyor).
Önizleme yapınca userform kapanmıyor.
Görsellik katmak için kodları butonlara atamaya çalıştım ama yapamadım.
Güncel dosyamı da ekliyorum
 

Ekli dosyalar

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
22
Üst