[ÇÖZÜLDÜ] Comboboxlar Aracılığıyla Süzerek Listview'e Aktarma

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sn veysel emre buna benzer bir sorunum benimda var aşağıda ve ekli dosyada izahat yapılmıştır. Alakadar olabilirseniz çok sevinirim saygılarımla.



AçılıştaData Sayfasının F-G-H-I sütunları BütçeYılı-Mali Yılı-Gider Türü-Masraf merkezi Combolarına BENZERSİZ kayıtlar gelecek
(Mümkünse en üste "Tümü" verisi eklenip,(ben eklemesine ekledim ancak ) Mesala mali yıllarda tümü seçilince tüm mali yıl kayıtları gelecek.
Lvw_AdSoyad Listwievi combolarda veri olmadığı için boş olarak gelecek.
Lvw_AdSoyad ListwievininCombonun biri değiştirinde Lvw_AdSoyad listwievindeki verilerde ona göre daralacak.
Diğer Combolardaki verilerde ona göre azalacak; Yani

Ancak cmb_by combosundan 2009 seçildiğinde cmb_my, cmb_Gt, cmb_mm combolarındaki verilerde daralacak yani data sayfasında verisüz modunda
2009 2008 personel daimi
2009 2009 personel daimi
2009 2009 personel Hammaliye
2009 2010 Kira Eskişehir
2009 2009 yatırım makine
gibi bir görüntü oluşuyorsa
cmb_my 2008,2009,2010
cmb_Gt personel, kira, yatırım
cmb_mm daimi, hammaliye, eskişehir, makine

şeklinde combolar daralacak.

cmb_Gt combosunda personel seçildiğinde

cmb_my 2008,2009
cmb_mm daimi, hammaliye

şeklinde daralacak...

cmb_mm combosunda hammaliye seçildiğinde

cmb_my 2009

diye daralacak....


Velhasılı kelam Veri süz modunda nasılş bir veriye göre sütunu süzdüğümüzde diğer sütunlardaki veriler daralıyor ona bazner bir şey ancak userform üzerinde....


Önemli Not: Verilerin son satırı şu an için 7254 olup daima artmaktadır.

buradada resimli açıklamam var.
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Değerli hocalarım ben veysel hocamın örneği üzerinde...
Listwieve ve combolara açılış verilerinin gelmesi işini hallettim daraltmalrı nasıl halledeceğiz.
Bide combolara gelen veriler 0 dan z ye sıralı olursa çok güzel olur.


 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Galiba bu modüldeki Listboxa göre düzenlenmiş
Kod:
kontrol
prosodürünü listwiev için düzeneleyebilirsem iş halolacak nasıl olmalı?

listbox için
Kod:
Sub kontrol()
Dim myarr1
myarr1 = MyArr
ListBox1.List = myarr1
If ComboBox1.Text = "" And ComboBox2.Text = "" And ComboBox3.Text = "" And ComboBox4.Text = "" Then Exit Sub
For x = ListBox1.ListCount - 1 To 0 Step -1
    If Not ListBox1.List(x, 0) Like ComboBox1.Text & "*" Or Not ListBox1.List(x, 1) Like ComboBox2.Text & "*" Or Not ListBox1.List(x, 2) Like ComboBox3.Text & "*" Or Not ListBox1.List(x, 3) Like ComboBox4.Text & "*" Then ListBox1.RemoveItem x
Next x
End Sub

listwiev için denemem

Kod:
Sub kontrol()
If ComboBox1.Text = "" And _
   ComboBox2.Text = "" And _
   ComboBox3.Text = "" And _
   ComboBox4.Text = "" Then
   Exit Sub
End If
'MsgBox Lvw_SuzData.ListItems.Count
With Lvw_SuzData
    For x = .ListItems.Count To 0 Step -1
        If Not .ListItems.Item(1) Like ComboBox1.Text & "*" _
        Or Not .ListItems.Item(2) Like ComboBox2.Text & "*" _
        Or Not .ListItems.Item(3) Like ComboBox3.Text & "*" _
        Or Not .ListItems.Item(4) Like ComboBox4.Text & "*" _
        Then .ListItems.Remove (i)
    Next x
End With
Erase myarr1
End Sub
Yanlış yazıdğımın farkındayım mantık şöyle
Combo1 de seçili veri listwiev subitems1 de kalacak, diğerleri silinecek
Combo2 de seçili veri listwiev subitems2 de kalacak, diğerleri silinecek
Combo3 de seçili veri listwiev subitems3 de kalacak, diğerleri silinecek
Combo4 de seçili veri listwiev subitems4 de kalacak, diğerleri silinecek
 
Katılım
5 Kasım 2007
Mesajlar
444
Excel Vers. ve Dili
2003 TR
Sn. hsayar, dosyanız üzerinde anlayabildiğim kadarıyla bazı çalışmalar yaptım.
Umarımki size kısmende olsa yardımcı olur. Kolay gelsin. İyi çalışmalar.
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sn Meslan alkanıza teşekkür ederim… dosyanızı inceledim ancak seçimleri daraltmıyor. Ben Sn Veyselemre’nin userformu ve kodları üzerinde bir yerlere vardım izahatı yapacağım.



Şekilde görüldüğü gibi Gider Türünden Personel seçildiğinde
Bütçe combobox’sında; 2001, 2005, 2007
Maliyet yılı combobox’sında; 2005, 2009, 2010, 2011
Masraf merkezi combobox’sında; Daimi, Yevmiyeli

Seçenekleri kalmalı.
Gider türü comboboxsında tümü seçildiğinde tüm liste geri gelmeli. Ancak mesala Gider türü kira ise ve masraf merkezi combosunda Serinkuyu (başka birşeyda olabilir) seçili ise Listwievde kira-serinkuyu, yatırım-serinkuyu listesi gelneli.

Personel seçili iken yatırım seçildiğinde yatırma ilişkin veriler listelenebilmeli.(mevcut durumda boş liste geliyor.)

Listwiev Ana sütununa (1. sıradaki) benzersiz verilerin gelmesi mümkün mü? Yani sadece pers001, pers002, pers005, pers006, must002, must001, personel ödemesi gibi benzersiz kayıtlar.
 
Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
sayın hsayar, dosyanız üzerinde bir takım denemeler yaptım, umarım istediğiniz gibi olmuştur, fazlaca üzerinde duramadım belki hatalar olabilir.
 
Katılım
5 Kasım 2007
Mesajlar
444
Excel Vers. ve Dili
2003 TR
Sn. hsayar dosyada resimdeki durumu sağlayacak şekilde değişiklik yaptım. Ayrıca combolara dbclick'le bütün listeyi sağlayabilirsiniz. Benzersiz kayıtlar mümkün. Ancak
pers001 2005 20001
pers001 2009 2005
pers001 2010 2004 gibi seçeneklerden ilk olanı kalacaktır. Bu da ne kadar sağlıklı olur? Selamlar.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Veysel Hocam lakanıoza teşekkür ederim bende 21. mesajdaki ekte siszin listbox'ı combolar ile süzdüğünüz örnek üzerine listwiev koyarak karalamalar yapmıştım. Örneğinizi İnceleyip size döneceğim. Görebildiğim kadarı
ile combolar(0) dana combolar(3) kadar artarak daraltma yapmışsınız ben ccombolor(3) ten Soğukkuyuyu seçtiğim kira ve yatırım olarakta detayları grebilmeliyim ve "her combonun başına "tümü" seçeneği koymak imkanımız varsa çok iyi olur.
Saygılarımla.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Veysel hocam
Userform ekrana geldikten sonra önce maliyet yılı seçip sonra Bütçe yılı seçince, ikinci kez mliyet yılları combosu boş geliyor nedendir?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sn. hsayar dosyada resimdeki durumu sağlayacak şekilde değişiklik yaptım. Ayrıca combolara dbclick'le bütün listeyi sağlayabilirsiniz. Benzersiz kayıtlar mümkün. Ancak
pers001 2005 20001
pers001 2009 2005
pers001 2010 2004 gibi seçeneklerden ilk olanı kalacaktır. Bu da ne kadar sağlıklı olur? Selamlar.
Sn meslan; benimde kastettiğim
Pers001 / 2005 / 2005 / personel / daimi
Pers001 / 2005 / 2005 / personel / yevmiyeli
Pers001 / 2005 / 2006 / personel / daimi

vs şeklindeki listeden 5 sütun birleştikten sonra benzersiz olnalrın kalması yani
listede 2 tane
Pers001 / 2005 / 2005 / personel / daimi
kaydı olmayacak 1 adet olacak.
 
Katılım
5 Kasım 2007
Mesajlar
444
Excel Vers. ve Dili
2003 TR
Sn.hsayar, dosyanızın son şeklini ekliyorum. Umarimki bu sefer idtediğiniz cevabı bulabilirsiniz.
 
Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Sayın hsayar, örnekteki bazı hatalar giderildi, Combolara veriler sıralı alınıyor, ve Listview'e veriler tekrarsız alınıyor. İşlemleri uzatmamak için tümü seçeneğine gerek görmedim, comboların boş olması demek tümünü seç şeklinde kullanılıyor.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sayın hsayar, örnekteki bazı hatalar giderildi, Combolara veriler sıralı alınıyor, ve Listview'e veriler tekrarsız alınıyor. İşlemleri uzatmamak için tümü seçeneğine gerek görmedim, comboların boş olması demek tümünü seç şeklinde kullanılıyor.
Sn. veysel hocam emeklerinize gerçekten minnettarım bu kodlar üzerine kullandığım verileri yükleyip ona göre deneme yapacağım.
Kırmızı satırları eklediğimde klevye girişi yapamadığım için "tümü seçeneğinde yarar gördüm. çünkü sadece ben değil patronda kullanacak ....
Kod:
Private Sub UserForm_Initialize()                '##'
    Cbx_AdSoyad.Caption = "Tüm  Sayfaları  Seç"  '##'
    Call Esc_Ile_Cik
    Call ListWiev_Sutun_Basliklari
    Call dicAl
    combolar = Array("cmb_bYil", "cmb_mYil", "cmb_gTur", "cmb_mMer")
[COLOR=red][B]   For X = 0 To 3[/B][/COLOR]
[B][COLOR=red]       Controls(combolar(X)).Style = fmStyleDropDownList[/COLOR][/B]
[B][COLOR=red]   Next X[/COLOR][/B]
    Call comboTextHazirla
End Sub                                          '##'
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Veysel hocam ben bu çalışmanızı kullanılmakta olan dosyama ekleyip denemeler yapacağım... yalnız karşıdan bakınca kusursuz görünüyor... Emekleriniz için çok teşekkür ediyorum. Allah (cc) den dilediğiniz herşey en kısa zamanda yerine gelsin inşallah.
Ve vaktinizin bol olduğu bir zamanda kodalrı ve açıklmalarını vermenizi rica ediyorum.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Hocam Belki bunu istemeye yüzüm yok sizi yorduğumunda farkındayım ama işte insanoğlunun doğası verilen yetinmyeip hep daha fazlasını ister....

Kod:
Sub ListWiev_Sutun_Basliklari()
    With Lvw_AdSoyad                             '##'
        .View = lvwReport
        .LabelEdit = lvwManual                   '##'
        .CheckBoxes = True                       'Her elemana CheckBox oluşturur.   '##'
        .ColumnHeaders.Clear
        .ListItems.Clear                         'başlıkları ve öğeleri temizle   '##'
        .ColumnHeaders.Add , , "Adı Soyadı", 142    'başlık ve genişliklerini ayarla     '##'
        .ColumnHeaders.Add , , "Bütçe Yılı", 50, lvwColumnRight
        .ColumnHeaders.Add , , "Mali Yılı", 50, lvwColumnRight
        .ColumnHeaders.Add , , "Gider Türü", 100
        .ColumnHeaders.Add , , "Masraf Merkezi", 100
[COLOR=red]     .ColumnHeaders.Add , , "BaşlıkToplamları", 100, lvwColumnRight[/COLOR]
    End With                                     'Lvw_AdSoyad                                                                              '##'
End Sub
Prosodürüne kırmızı satrı ekledikten sonra


Userformumuzun başlıktoplamları alanında toplamları göstermek mümkün mü?

Mesala yukarıdaki ekran laıntısdında
Hasan Hüseyin için değer 1000 + 1520 den 2520
diğerleri tek kayıt olduğu için aynen olacak.
Masraf Merkezi Combosu yanına konulacak bir textbox'a da o ana listwievde gözüken listenin toplamı gelecek.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Bahsettiğiniz eklemeleri yapmaya çalıştım, doğruluğunu test ederseniz, iyi olur.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
veysel Hocam j5:j228 aralığının toplamı 337.202,00 iken uf üzerindeki lableda listelenen başlık toplamı 337192 yazıyor.
neden kaynaklı olabilir.
işin ilginci j kolonunda 10 ytl değerinde bir şeyde yok.

Analiz bazında ise aşağıdaki gibi hatalar mevcuttur. Alakadar olduğunuz için tekrar teşekkür ederim.
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
veysel hocam sorunun kaynağını buldumda çözümünü bulamadım :)
K sütununa =tamsayı(J & satno)
formülünü uygulayıp toplamını alınca listwievde Listelenen başlık toplamı 337192 değerine ulaşılıyor.
ama çzöüm derseniz o kadar anlayamadım.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Excel'de ondalık işareti olarak nokta kullanırsanız, sorun olmayacaktır, sanırım. Bende herhangi bir sorun yok. VBA'da noktalama işareti noktadır. Değiştirmeyi düşünmüyorsanız, Listview'e alınan değerler string olarak aktarıldığı için, toplama yapılan satırlarda replace ile noktaları kaldırın, virgülleri noktaya çevirin ondan sonra toplama yapın. Ama bence ondalık işareti olarak noktayı kullanmayı alışkanlık yapın...
 
Üst