Soru ComboBox'lar ile Listeleme

Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
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
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,196
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
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:
Katılım
30 Mart 2010
Mesajlar
240
Excel Vers. ve Dili
2007,2010,2013
Altın Üyelik Bitiş Tarihi
29-05-2021
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
 
Üst