Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 6
  • 609

Witam.

Chciałbym wyłączyć w jednym z filtrów tabeli przestawnej możliwość wybierania "(Wszystko)" lub ewentualnie wyłączyć wyświetlanie w liście wyboru. Zaznaczam, że zależy mi na wyłączeniu tylko dla jednego filtru, dla pozostałych opcja ta powinna zostać. Jak mogę to zrobić?

Załączniki

  • jpg

    filtr_pivot.jpg ( 14K )
Przemo
  • Zapytał
  • @ Przemo | 13.05.2014
    • laureat
    • 59
    • 24
    • 71

Odpowiedzi (2)

  • 3
  1. Budujemy tabelę przestawną.
  2. W komórce ( w tym przypadku Arkusz1 D3) tworzymy za pomocą narzędzia sprawdzania poprawności listę wyboru.
    1. W tym przypadku lista pobiera z arkusza źródło listy adres do listy ( adres jet podany po przez nazwę zakresu komórek),
    2. Może być wpisywany bezpośrednio do pola listy,
    3. Komórka nie może być w wierszy w którym jest filtr.
  3. Wiersz w arkuszu z tabelą przestawną, gdzie znajduje się filtr, któremu chcemy wyłączyć opcję "wszystkie" jest ukryty ( w tym przypadku jest to wiersz 2).
  4. Przechodzimy do edytora VBA ( Alt F11).
  5. Dla arkusza, na którym jest tabela przestawna wklejamy kod (w tym przypadku arkusz2 (Samochody)).
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Address <> "$D$3" Then Exit Sub
    
    
    ActiveSheet.PivotTables("Tabela przestawna1").PivotFields("Typ nadwozia").CurrentPage = Target.Value
    
    
    End Sub
  6. W przypadku zastosowania w Swojej tabeli proszę o ile potrzeba zmienić:
    1. "$D$3" - na adres komórki, w której budowana jest lista,
    2. "tabela przestawna1" - na nazwę tabeli przestawnej, dla której to budujemy,
    3. "typ nadwozia" - na nazwę pola w tabeli, któremu chcemy wyłączyć opcję "wszystkie".

Załączniki

  • xlsm

    tabela przestawna.xlsm ( 21K )
  • Odpowiedział
  • @ | 24.05.2014
  • TRENER ALTKOM AKADEMII
Komentarze
Super! Dziekuje bardzo!
Skomentował : @ Przemo ,26.05.2014
  • 59
  • 24
  • 71
Czy jest możliwość aby funkcja if sprawdzała wartość ale nie w komórce tylko w polu kombi? Spróbowałem podmienić komórkę $D$3 na Shapes("Drop Down 8") ale nie działa :(.
Skomentował : @ Przemo ,26.05.2014
  • 59
  • 24
  • 71
  • 0

Rozwiązanie ma działać tak: w przypadku zmiany wyboru w formancie, odfiltrowywana jest tabela przestawna.

  1. Ukrywamy wiersz w filtrze tabeli tak, jak w poprzednim rozwiązaniu,
  2. Wstawiamy do arkusza zw wstęgi Deweloper formant pole kombi,





  3. "Prawoklik" na polu i uzyskujemy menu, z którego wybieramy Formatuj formant.




  4. Wybieramy na zakładce Format zakres komórek ,które będą źródłem listy ( tutaj z arkusza źródło listy komórki B3:B5).




  5. Ponownie "prawoklik" na formancie i wybieramy opcję przypisz makro.




  6. Excel zaproponuje nam przypisanie makra o nazwie Rozwiń(numer)_Zmienianie, gdzie numer to numer tego obiektu, możemy zarejestrować to makro, przy czym od razu zatrzymujemy jego rejestrację tak, aby nic się nie nagrało.




  7. Ze wstęgi Deweloper wybieramy makra, a z listy makr zarejestrowane i zapisane przed chwilą makro, które zaczynamy edytować.




  8. W edytorze VBA wklejamy kod.

    With ActiveSheet.Shapes("Drop Down 2").ControlFormat
     ActiveSheet.PivotTables("Tabela przestawna1").PivotFields("Typ nadwozia").CurrentPage = .List(.Value)
     End With
    Numer Shapes "Drop Down 2" musi być taki sam, jaki nam się zarejestrował do makra, czyli jeżeli "Rozwiń2_Zmieniania" to "Drop Down 2", jeżeli "Rozwiń3_Zmieniania" to "Drop Down 3" itd.
    "Tabela przestawna1" - to nazwa tabeli, którą odświeżamy.
    "Typ nadwozia" - to pole filtra w tabeli, który zmieniamy (ukryty w punkcie 1).

Załączniki

  • xlsm

    tb combobox.xlsm ( 23K )
  • Odpowiedział
  • @ | 28.05.2014
  • TRENER ALTKOM AKADEMII
Komentarze
Świetnie!!! Właśnie o takie rozwiązanie mi chodziło. Dziękuje
Skomentował : @ Przemo ,28.05.2014
  • 59
  • 24
  • 71