Wpis z mikrobloga

@RolnikSamWdolinie:

Sub pFilter()

Dim pFilter As PivotFilter

ActiveSheet.PivotTables("Tabela przestawna1").PivotFields("Data").
ClearAllFilters
Set pFilter = ActiveSheet.PivotTables("Tabela przestawna1").PivotFields("Data")

.PivotFilters.Add(Type:=xlCaptionEquals, Value1:="30/12/2016")

End Sub
  • Odpowiedz
@RolnikSamWdolinie: Chodziło o format tego filtra - "Dim MyFilter As Date" było rozwiązaniem problemu.

Kiedy próbowaliśmy włączyć filtrowanie linią .CurrentPage = "30/12/2016" excel nie znajdował takiej wartości (bo data jest przechowywana jako numer (ilość dni od 01.01.1900) a to co się wyświetla (30/12/2016) to wynik formatowania.
  • Odpowiedz
@JanKremovski: Jeszcze pozawracam Ci tyłek jeśli można ;) Jak wrzucam do twojej funkcji bezpośrednio datę np "30/12/2016" albo to samo w stringu to jest ok ale jak zrobie stringa z funkcji dzisiej daty to znowu ten sam błąd :( np:

Dim MyFilter As Date

MyFilter = Format(Date, "dd/mm/yy")

With ActiveSheet.PivotTables("Tabela przestawna1").PivotFields("Data")
.ClearAllFilters
.EnableMultiplePageItems = True
.CurrentPage = MyFilter
End With

End Sub

Kombinowałem różne formaty daty i nie pomagało :(
  • Odpowiedz
@RolnikSamWdolinie Sub Filter() 
Dim Myfilter As Date 

Myfilter = Date 

With ActiveSheet.PivotTables("Tabela przestawna1").PivotFields("Data") 
    .ClearAllFilters 
    .EnableMultiplePageItems = True 
    .CurrentPage = Myfilter 
End With 

End Sub
  • Odpowiedz