• DİKKAT

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

Soru ComboBox'lar ile Listeleme

Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Merhaba,
5 adet combobox ile birbiriyle bağlantılı şekilde filtreleme yapmak istiyorum. Tüm olasılıkları aşağıdaki koddaki gibi teker teker yazmalı mıyım yoksa bir kısa yolu var mıdır?

Teşekkürler.

Kod:
Private Sub ComboBox_fil_Change()
Worksheets(5).Range("A2:AU65500").ClearContents
Worksheets(4).Activate
Range("A1").Select
fsatir = Worksheets(4).Range("A1:A65500").Find("*", , , , xlByRows, xlPrevious).Row
Selection.AutoFilter

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value = "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3 ', Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value = "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7 ', Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value = "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4 ', Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value = "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6 ', Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value = "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5 ', Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If


Intersect(Worksheets(4).UsedRange, Worksheets(4).UsedRange.Offset(1)).SpecialCells(xlCellTypeVisible).Copy
Worksheets(5).Cells(2, 1).End(xlUp).Offset(1).PasteSpecial xlPasteValues
fsatir = Worksheets(5).Range("A" & Rows.Count).End(xlUp).Row
Worksheets(5).Range(Worksheets(5).Cells(fsatir + 1, 8), Worksheets(5).Cells(fsatir + 1, 8)).Value = "TOPLAM : "
For i = 9 To 47
toplam = Application.WorksheetFunction.Sum(Worksheets(5).Range(Worksheets(5).Cells(2, i), Worksheets(5).Cells(fsatir, i)))
Worksheets(5).Range(Worksheets(5).Cells(fsatir + 1, i), Worksheets(5).Cells(fsatir + 1, i)).Value = toplam
Next
Worksheets(5).Activate
ListBox4.RowSource = "'" & Sayfa5.Name & "'!a2:au" & [h65500].End(xlUp).Row
End Sub
 
Merhaba,

Doğru anladıysam, kodlarınız da aşağıdaki bölümlerin tümünü silip
Kod:
If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value = "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3 ', Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value = "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7 ', Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value = "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4 ', Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value = "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6 ', Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value = "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5 ', Criteria1:=ComboBox_fyuk.Value
End With
End If

If ComboBox_fil.Value <> "-TÜMÜ-" And ComboBox_fay.Value <> "-TÜMÜ-" And ComboBox_fis.Value <> "-TÜMÜ-" _
And ComboBox_fyil.Value <> "-TÜMÜ-" And ComboBox_fyuk.Value <> "-TÜMÜ-" Then
With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
End With
End If



Yerine aşağıda verdiklerimi yazıp deneyin.
Kod:
If ComboBox_fil.Value = "-TÜMÜ-" Then a = "*" Else a = ComboBox_fil.Value
If ComboBox_fay.Value = "-TÜMÜ-" Then b = "*" Else b = ComboBox_fay.Value
If ComboBox_fis.Value = "-TÜMÜ-" Then c = "*" Else c = ComboBox_fis.Value
If ComboBox_fyil.Value = "-TÜMÜ-" Then d = "*" Else d = ComboBox_fyil.Value
If ComboBox_fyuk.Value = "-TÜMÜ-" Then e = "*" Else e = ComboBox_fyuk.Value


With Range("A1:AU" & fsatir)
  .AutoFilter Field:=3, Criteria1:=a
  .AutoFilter Field:=7, Criteria1:=b
  .AutoFilter Field:=4, Criteria1:=c
  .AutoFilter Field:=6, Criteria1:=d
  .AutoFilter Field:=5, Criteria1:=e
End With

.
 
Son düzenleme:
Merhaba, evet doğru. Yapmak istediğim buydu.
Alternatif olarak da aşağıdaki kodu oluşturdum. Örnek çeşitliliği için buraya ekliyorum.
Teşekkürler.
Kod:
With Range("A1:AU" & fsatir)
  If ComboBox_fil.Value = "-TÜMÜ" Then
  .AutoFilter Field:=3
  Else
  .AutoFilter Field:=3, Criteria1:=ComboBox_fil.Value
  End If
  If ComboBox_fay.Value = "-TÜMÜ-" Then
  .AutoFilter Field:=7
  Else
  .AutoFilter Field:=7, Criteria1:=ComboBox_fay.Value
  End If
  If ComboBox_fis.Value = "-TÜMÜ-" Then
  .AutoFilter Field:=4
  Else
  .AutoFilter Field:=4, Criteria1:=ComboBox_fis.Value
  End If
  If ComboBox_fyil.Value = "-TÜMÜ-" Then
  .AutoFilter Field:=6
  Else
  .AutoFilter Field:=6, Criteria1:=ComboBox_fyil.Value
  End If
  If ComboBox_fyuk.Value = "-TÜMÜ-" Then
  .AutoFilter Field:=5
  Else
  .AutoFilter Field:=5, Criteria1:=ComboBox_fyuk.Value
  End If
End With
 
Geri
Üst