• DİKKAT

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

Özet tablo_seçili hücreyi filtre alanına atama problemi hk

Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Merhaba,
adım ile makro kaydedip aktif hücredeki değere göre pivottaki filtre alanından seçim yaptırıyorum fakat seçim yapınca pivot değiştiği için aktif hücredeki değer de değişiyor ve makro aslında ilk seçimdeki değere göre değil, pivot değiştikten sonraki değere göre çalışıyor

Örneğin;
Makroyu çalıştırmadan önceki seçili hücredeki (pivot alanı içinde herhangi bir hücre) değer = A

Makro çalıştığında seçili hücreye denk gelen değer = B

Makronun çalışırken referans aldığı değer = B (Fakat A yı referans alması gerekiyor)

Kodu ekliyorum ;

Kod:
Sub Makro2()
'
' Makro2 Makro
'

'
    ActiveSheet.PivotTables("PivotTable1").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Desen").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Desen").CurrentPage = ActiveCell.Value
End Sub
 
Arkadaşların desteğiyle yukarıdaki konuyu

Application.EnableEvents = False
Application.EnableEvents = True

kodlarıyla hallettik fakat kodları yukarıdaki makroda tam olarak nereye konumlandıracağımı bilmedim, destekleriniz için teşekkürler.
 
Son düzenleme:
Son bir ümit konuyu yeniden aktif hale getiriyorum, destekleriniz için teşekkür ederim.
 
Problemi çözdüm. Daha sonra başka arkadaşlarında yararlanması için paylaşmak istedim. Aslında kodlardan ziyade mantık hatası yaptığımı farkettim. İlk durumda ebat kısmının filtresi ilk sırada değiştiği için doğal olarak aktif hücre verisi sorgu yapılamadan değişiyordu. Bunu Application.EnableEvents = False/ True kodlarıyla çözememiştim. Daha sonra makrodaki adımları yer değiştirdim, böylelikle filtrelenmiş alan değişmeden aktif hücredeki veriyi alabilmiş oldum. Birçok arkadaş için belki çok daha kısa bir yolu olabilir ama ben bu şekilde çözebildim.

Kod:
Sub Sbt_desen_tüm_ebatlar()
'
' Sbt_desen_tüm_ebatlar Makro
'

'
    Application.EnableEvents = False

    ActiveSheet.PivotTables("PivotTable1").PivotFields("Desen").CurrentPage = ActiveCell.Value
    
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Klnlık").CurrentPage = _
        "(All)"
    
    Application.EnableEvents = True
        

End Sub
 
Geri
Üst