• DİKKAT

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

özet tablo vba ile filte

  • Konbuyu başlatan Konbuyu başlatan bebar
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Kasım 2014
Mesajlar
255
Excel Vers. ve Dili
2013
Merhaba,

bir özet tablom var. hücredeki bulunan değerleri filtre yapmak istiyorum. makro çalıştır ile aşağıdaki gibi bir kod oluşturdum.

Kod:
    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Product].[ProductCode].[ProductCode]").VisibleItemsList = Array( _
        "[Product].[ProductCode].&[ürün1]", _
        "[Product].[ProductCode].&[ürün2]", _
        "[Product].[ProductCode].&[ürün3]", _
        "[Product].[ProductCode].&[ürün4]", _
        "[Product].[ProductCode].&[ürün5]")

aşağıdaki gibi revize ettim fakat söz dizimi hatası veriyor.

Kod:
    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Product].[ProductCode].[ProductCode]").VisibleItemsList = Array( _
        "[Product].[ProductCode].&" & Range("j7"), _
        "[Product].[ProductCode].&" & Range("j8"), _
        "[Product].[ProductCode].&" & Range("j9"), _
        "[Product].[ProductCode].&" & Range("j10"), _
        "[Product].[ProductCode].&" & Range("j11"))





Seçili olan ürünler Range("J7:J15") aralğındanki ürünler ve filtrede manuel seçerek oluşturdum.
istediğim, dinamik bir hücre aralığındaki verileri otomatik olarak filtre yapabileceğim bir kod varmıdır??
konu benim için gerçekten çok önemlidir. yardımcı olursanız çok memnun olurum.

Teşekkür ederim.
 
Son düzenleme:
"[Product].[ProductCode].&[" & Range("j7") & "]" şeklinde yazmayı deneyiniz.
ürün1 kısmı sadece değişken olarak değiştirin.. " & degisken & " şeklinde..
 
Kod:
    ActiveSheet.PivotTables("PivotTable1").PivotFields("[Product].[ProductCode].[ProductCode]").VisibleItemsList = Array( _
        "[Product].[ProductCode].&" & "[" & Range("j7") & "]", _
        "[Product].[ProductCode].&" & "[" & Range("j8") & "]")
Dediğiniz gibi yapınca oldu fakat kullandığım tablo dinamik sürekli satır sayısı değişiyor ve 500 satırdan fazla veri var. tek tek yazmam olanaksız
 
Dosyaya ve yapılan işe bakmak gerek.
 
sorunumu aşağıdaki kod ile çözdüm ilginize teşekkürler

Dim PivotStr(7 To 1000) As String
For i = 7 To 13
PivotStr(i) = "[Product].[ProductCode].&" & "[" & Cells(i, 10) & "]"
Next i
ActiveSheet.PivotTables("PivotTable1").PivotFields("[Product].[ProductCode].[ProductCode]").VisibleItemsList = Array(PivotStr)
 
hocam teşekkür ederim kendi dosyama aşağıdaki gibi uygulamaya çalıştım.
"pivotitem sınıfının visable özleliği kurulamıyor" diye hata alıyorum.

Sub pivot_filter()
Dim s1 As Worksheet
Dim s2 As Worksheet
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
x = s1.Cells(Rows.Count, 1).End(xlUp).Row


Dim aln As Range
Set aln = s1.Range("A2:A" & x)

Dim pt As PivotTable
Set pt = s2.PivotTables("PivotTable1")

Dim al As PivotField
Set al = pt.PivotFields("[Product].[ProductCustom19].[ProductCustom19]")


With al

Dim Item As PivotItem

For Each Item In .PivotItems
Item.Visible = True
Next Item

For Each Item In .PivotItems
Item.Visible = False
Dim cell As Range
For Each cell In aln
If Item.Caption = cell.Text Then
Item.Visible = True
Exit For
End If
Next cell
Next Item
End With

End Sub
 
Geri
Üst