Dariusz Polak

Dariusz Polak Warehouse manager,
Cooper Standard
Automotive Polska
Sp. ...

Temat: VBA - filtrowanie tabeli przestawnej

Witam

Potrzebuję przefiltrować tabelę przestawną według konkretnych dat a mianowicie
ostatnią (dzisiejszą)
dzisiejszą -1 - czyli przedostatnią
ostatnia - 7 czyli sprzed tygodnia
ostatnia - 30 czyli sprzed miesiąca

Odnalezienie tych dat nie stanowi problemu

Dim Tod As Date
Dim Yest As Date
Dim Week As Date
Dim Month As Date


Tod = WorksheetFunction.Max(Range("A:A"))
Range("B4") = Tod

Yest = WorksheetFunction.VLookup(WorksheetFunction.Max(Range("A:A")) - 1, Range("A:A"), 1, True)
Range("B3") = Yest

Week = WorksheetFunction.VLookup(WorksheetFunction.Max(Range("A:A")) - 7, Range("A:A"), 1, True)
Range("B2") = Week

Month = WorksheetFunction.VLookup(WorksheetFunction.Max(Range("A:A")) - 30, Range("A:A"), 1, True)
Range("B1") = Month

natomiast filtrowanie tabeli przestawnej na podstawie tych wartości już tak

Dim El As PivotItem

For Each El In ActiveSheet.PivotTables("T2").PivotFields("TEST").PivotItems
If El = Month Then
El.Visible = True
Else
If El.Value = Week Then
El.Visible = True
Else
If El.Value = Yest Then
El.Visible = True
Else
If El.Value = Tod Then
El.Visible = True
Else
El.Visible = False
End If
End If
End If
End If

Next

Proszę o pomoc
Dziękuję
Mariusz Jankowski

Mariusz Jankowski Programista
Excel/VBA

Temat: VBA - filtrowanie tabeli przestawnej

Cześć,

1. Zamiast zagnieżdżać IF lepiej użyj SELECT CASE
2. Przed Range zawsze umieszczaj informację, do którego arkusza się odwołujesz (brak informacji = aktywny, w momencie uruchomienia makra, arkusz).
3. Zrezygnuj z używania słowa "Active" w kodzie - to zawsze rodzi problemy.

PS. Jeżeli możesz - załącz plik z przykładowymi danymi.

Następna dyskusja:

VBA filtry w tabeli przesta...




Wyślij zaproszenie do