listview

Katılım
25 Aralık 2005
Mesajlar
219
arkadaşlar ekteki dosyayı değiştirdim. çünkü konuyu tam olarak anlatamadım. bu yüzden üzerinde çalıştığım projenin son halini gönderiyorum.. burada yapmak istediğim sıralı olan 13 combobox da birbirlerine bağlı olarak veriyi süzüp, listviewde göstermek
 
Son düzenleme:
Katılım
25 Aralık 2005
Mesajlar
219
sayın orion Çok teşekkür ederim ilginiz için evet cevabını inceledim. ancak her bir checkbox için bunu yapmam gerekiyor sanırım. . yukarıdaki örnekte ise tüm comboboxlar için bir kod kullanılmış yani daha kısa. bende projemi bu örneğe göre uyarlama çalıştım.. textboxların yerine combobox kullandım. kodların kısa olması nedeniyle bu örneği gönderdim.. kodları listview göre değiştireceğim. bir iki kod olsa gerek bu konuda yardımınızı bekliyorum. teşekkür ederim
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Vermiş olduğunuz dosyada birden fazla veriyi combobox yardımı ile listbox'ta süzme işlemi yapılmış.
Sizde listview yerine listbox kullanarak bu işlemi yapabilirsiniz.:cool:
 
Katılım
22 Temmuz 2006
Mesajlar
186
Excel Vers. ve Dili
2003
Tabii ki listview içinde süzme yapabiliriz . .

Örnek için bir dosya hazırladım size,
İnceleyiniz !!
 
Katılım
25 Aralık 2005
Mesajlar
219
teşekkürler ama istediğim maalesef olmadı
 
Son düzenleme:
Katılım
25 Aralık 2005
Mesajlar
219
çok özür dilerim. aceleden dolayı yanlış yazmışım. 1 den 16 kadar olan comboboxlarda süzme işlevini yapmak istiyordum
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Projenize yeni bir modül ilave edin ve aşağıdaki prosedürü kopyalayın.

Daha sonra, Filtreleme işini yapacak butonun -zira ben bu butonu bulamadım- click olayında bu prosedürü çağırın. Örneğin: Eğer Filtreleme işini yapacak, butonun CommanButton7 ise,

Kod:
Private Sub CommandButton7_Click()
Call Filtrele
End Sub
bu kodu kullanabilirsiniz.

Kodlarda kullanılan if then komutlarını kontrol ediniz. Ben her ne kadar sayfa üzerindeki bilgilerle, nesneleri eşleştirmeye çalışsam da, konuya vakıf olmadığım için hata yapmış olabilirim.

Kod:
Sub Filtrele()
Dim s1 As Worksheet
Dim uf As Object
Set s1 = Sheets("giriş")
Set uf = UserForm1
son = s1.Cells(65536, 1).End(xlUp).Row
With uf.ListView1
  .ListItems.Clear
   For i = 2 To son
      If s1.Cells(i, 2) = uf.ComboBox1 Or uf.ComboBox1 = Empty Then
         If s1.Cells(i, 3) = uf.ComboBox2 Or uf.ComboBox2 = Empty Then
            If s1.Cells(i, 4) = uf.ComboBox3 Or uf.ComboBox3 = Empty Then
               If s1.Cells(i, 5) = uf.ComboBox4 Or uf.ComboBox4 = Empty Then
                  If s1.Cells(i, 6) & " " & s1.Cells(i, 7) = uf.ComboBox5 Or uf.ComboBox5 = Empty Then
                     If s1.Cells(i, 7) = uf.ComboBox6 Or uf.ComboBox6 = Empty Then
                        If s1.Cells(i, 8) = uf.ComboBox7 Or uf.ComboBox7 = Empty Then
                           If s1.Cells(i, 9) = uf.ComboBox8 Or uf.ComboBox8 = Empty Then
                              If s1.Cells(i, 10) = uf.ComboBox9 Or uf.ComboBox9 = Empty Then
                                 If s1.Cells(i, 11) = uf.ComboBox10 Or uf.ComboBox10 = Empty Then
                                    If s1.Cells(i, 12) = uf.ComboBox11 Or uf.ComboBox11 = Empty Then
                                       If s1.Cells(i, 13) = uf.ComboBox12 Or uf.ComboBox12 = Empty Then
                                          If s1.Cells(i, 14) = uf.ComboBox13 Or uf.ComboBox13 = Empty Then
                                             If s1.Cells(i, 15) = uf.ComboBox14 Or uf.ComboBox14 = Empty Then
                                                If s1.Cells(i, 16) = uf.ComboBox15 Or uf.ComboBox15 = Empty Then
                                                   If s1.Cells(i, 17) = uf.ComboBox16 Or uf.ComboBox16 = Empty Then
                                                     .ListItems.Add , , s1.Cells(i, 1)
                                                      x = x + 1
                                                      With .ListItems(x).ListSubItems
                                                        .Add , , s1.Cells(i, 2)
                                                        .Add , , s1.Cells(i, 3)
                                                        .Add , , s1.Cells(i, 4)
                                                        .Add , , s1.Cells(i, 5)
                                                        .Add , , s1.Cells(i, 6)
                                                        .Add , , s1.Cells(i, 7)
                                                        .Add , , s1.Cells(i, 8)
                                                        .Add , , s1.Cells(i, 9)
                                                        .Add , , s1.Cells(i, 10)
                                                        .Add , , s1.Cells(i, 11)
                                                        .Add , , s1.Cells(i, 12)
                                                        .Add , , s1.Cells(i, 13)
                                                        .Add , , s1.Cells(i, 14)
                                                        .Add , , s1.Cells(i, 15)
                                                        .Add , , s1.Cells(i, 16)
                                                        .Add , , s1.Cells(i, 17)
                                                        .Add , , i
                                                      End With
                                                   End If
                                                End If
                                             End If
                                          End If
                                       End If
                                    End If
                                 End If
                              End If
                           End If
                        End If
                     End If
                  End If
               End If
            End If
         End If
      End If
   Next i
End With
Set s1 = Nothing
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
combobox3 kadar süzüyor sonra maalesef
Evet bu bir sorun teşkil edecekti zaten ...

Dikkat ederseniz, numeric değerler süzülmeye çalışıldığında bu hatayı vermeye başladı (TC Kimlik No)

Kodunuzun, bu kısmını ben onarayım siz gerisini halledin.

Bu sorunun nedeni, Combodan okunan veri ile Sayfadan okunan verinin tiplerinin aynı olmamasıdır. Yani, Combo'daki 34323 değeri ile, sayfadaki 34323 değeri aynı değildir. Çünkü, sayfadaki değer nümerik(sayısal), combodaki veri ise Text yapıdadır.

Kodunuzun ilgili yerini aşağıdaki işaretli kısım gibi değiştirin. Diğer satırlarda böyle bir sorunla karşılaşırsanız aynı mantık geçerli ...

Kod:
Sub Filtrele()
....
....
With uf.ListView1
  .ListItems.Clear
   For i = 2 To son
      If s1.Cells(i, 2) = uf.ComboBox1 Or uf.ComboBox1 = Empty Then
         If s1.Cells(i, 3) = uf.ComboBox2 Or uf.ComboBox2 = Empty Then
            If s1.Cells(i, 4) = uf.ComboBox3 Or uf.ComboBox3 = Empty Then
[COLOR=red]               If s1.Cells(i, 5) [B]& ""[/B] = uf.ComboBox4 Or uf.ComboBox4 = Empty Then
[/COLOR]....
Diğer Kodlarınız
....
End Sub
 
Katılım
25 Aralık 2005
Mesajlar
219
elinize sağlık çok teşekkür ederim. problem halloldu sayenizde
 
Üst