Çoklu sütunla gelişmiş filtre kullanımı

Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Merhaba arkadaşlar

Ekteki dosyamda çoklu stündan benzersiz tek liste çıkarmak istiyorum.Sorumun detayını dosya üzerinde anlatmaya çalıştım.
Herzaman olduğu gibi yardımlarınızı esirgemeyiniz lütfen.
Teşekkürler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin.

Kod:
Sub listele()
Dim hucre As Range
Set s1 = Sheets("Flitre")
Set s2 = Sheets("Data")
s2.[a2:d65536].ClearContents
son = [a65536].End(3).Row
For Each hucre In s1.Range("a3:o" & son)
If WorksheetFunction.CountIf(s2.[a:a], hucre) = 0 And hucre <> "" Then
c = c + 1
s2.Cells(c + 1, "a") = hucre
s2.Cells(c + 1, "b") = WorksheetFunction.SumIf(s1.Range("a3:o" & son), hucre, s1.Range("q3:ae" & son))
s2.Cells(c + 1, "c") = WorksheetFunction.SumIf(s1.Range("a3:o" & son), hucre, s1.Range("ag3:au" & son))
s2.Cells(c + 1, "d") = Round(s2.Cells(c + 1, "c") / s2.Cells(c + 1, "b"), 2)
End If
Next
End Sub
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Merhabalar sn. Leventm

Kod i&#351;e yar&#305;yor lakin
&#252;r&#252;n1, miktar1, tutar1 e yeni de&#287;erler girip kod &#231;al&#305;&#351;t&#305;r&#305;ld&#305;&#287;&#305;nda "Run-time'6' Overflow" hatas&#305; ile kar&#351;&#305;la&#351;t&#305;m nedeni ne olabilir.
Sayg&#305;lar&#305;mla
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
hata bu sat&#305;r &#252;zerinde olu&#351;uyor
"s2.Cells(c + 1, "d") = Round(s2.Cells(c + 1, "c") / s2.Cells(c + 1, "b"), 2)"
anlad&#305;&#287;&#305;m kadar&#305;yla bo&#351; olan h&#252;creler hesaplanmaya &#231;al&#305;&#351;l&#305;yor galiba &#231;&#252;nk&#252; data sayfas&#305;ndaki listede
&#252;r&#252;n kolonunun son sat&#305;r&#305; bo&#351;ken kar&#351;&#305;s&#305;ndaki kolonlarda "0" lar mevcut
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Yukar&#305;daki kodu k&#252;&#231;&#252;k bir ilave ile yeniledim tekrar deneyin.
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
evet &#231;al&#305;&#351;t&#305; &#231;ok te&#351;ekk&#252;r ederim sn.Leventm
oldu olacak &#351;unuda yapal&#305;m :)

kodu otomatik hale nas&#305;l getirebiliriz yani listeye yeni veri girildi&#287;inde makro her hangi bir butona basmadan otomatik olarak &#231;al&#305;&#351;mal&#305;
 
Katılım
6 Nisan 2006
Mesajlar
86
Excel Vers. ve Dili
2003 tr
Sn. Leventm

Vermiş olduğunuz kodu aşağıdaki şekliyle
Flitre sayfasının kod bölümüne yazdım ve istediğim oldu
çabalarınız için teşekkürlerimi sunar hayırlı ve uzun bir ömür yaşamanızı
dilerim.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim hucre As Range
On Error GoTo 10

Set s1 = Sheets("Flitre")
Set s2 = Sheets("Data")
s2.[a2:d65536].ClearContents
son = [a65536].End(3).Row
For Each hucre In s1.Range("a3:eek:" & son)
If WorksheetFunction.CountIf(s2.[a:a], hucre) = 0 And hucre <> "" Then

c = c + 1
s2.Cells(c + 1, "a") = hucre
s2.Cells(c + 1, "b") = WorksheetFunction.SumIf(s1.Range("a3:eek:" & son), hucre, s1.Range("q3:ae" & son))
s2.Cells(c + 1, "c") = WorksheetFunction.SumIf(s1.Range("a3:eek:" & son), hucre, s1.Range("ag3:au" & son))
s2.Cells(c + 1, "d") = Round(s2.Cells(c + 1, "c") / s2.Cells(c + 1, "b"), 2)

End If
10:
Next
End Sub
 
Üst