• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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:
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
 
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:
 
Tabii ki listview içinde süzme yapabiliriz . .

Örnek için bir dosya hazırladım size,
İnceleyiniz !!
 
teşekkürler ama istediğim maalesef olmadı
 
Son düzenleme:
çok özür dilerim. aceleden dolayı yanlış yazmışım. 1 den 16 kadar olan comboboxlarda süzme işlevini yapmak istiyordum
 
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
 
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
 
elinize sağlık çok teşekkür ederim. problem halloldu sayenizde
 
Geri
Üst