Temat: VBA - jak sprawdzic czy Tabela Przestawna ma filter?
Witam,
Ja mam troszkę inny problem. Chodzi mi o to aby plik QR4 był filtrowany po zmiennej FS i tak też się dzieję bo jak wpisana zmienna istnieje to odpowiednie wartości są kopiowane do innego pliku. Schody zaczęły się dziać w momencie gdy zadana wartość FS nie jest znaleziona w filtrze i wtedy makro zamiast wpisać wartości 0 to przepisuje wartości z ostatniego znalezione go FS w PivotField.
Kod poniżej:
Sub GS_weekly()
'
' GS_weekly Makro
'
' Klawisz skrótu: Ctrl+n
'
Dim week As String
Dim FS As String
Dim cost As String
Dim PI As PivotItem
week = Application.InputBox("Podaj numer tygodnia folderu, z którego danych chcesz skorzystać ?")
If TypeName(week) = "Boolean" Then Exit Sub
On Error Resume Next
FS = Application.InputBox("Podaj nr FS, dla którego dane wyciągnę ?")
If TypeName(FS) = "Boolean" Then Exit Sub
On Error Resume Next
cost = Application.InputBox("Podaj kolumnę, w której umieścić dane ?")
If TypeName(cost) = "Boolean" Then Exit Sub
On Error Resume Next
Windows("QR4 WK" & week & ".xlsx").Activate
Sheets("Arkusz3").Activate
With ActiveSheet.PivotTables("Tabela_przestawna_QR4_3").PivotFields("fin_style_id")
.ClearAllFilters
For Each PI In .PivotItems
Select Case PI
Case "" & FS & "": PI.Visible = True
Case Else: PI.Visible = False
End Select
Next PI
End With
ActiveSheet.PivotTables("Tabela_przestawna_QR4_3").PivotFields( _
"fin_style_id").EnableMultiplePageItems = True
Windows("Bierun Lamination WK" & week & " 2021.xlsm").Activate
Sheets("" & FS & "").Activate
Range("AI3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(RC[-20],'[QR4 WK" & week & ".xlsx]Arkusz3'!R7C1:R100C2,2,FALSE),0)"
Range("AI3").Select
Selection.AutoFill Destination:=Range("AI3:AI12"), Type:=xlFillDefault
Range("AI3:AI12").Select
Selection.Copy
Range("" & cost & "3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("AI15").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = _
"=IFERROR(VLOOKUP(R[-13]C[-33],'[LE WK" & week & ".xlsx]PV_value'!R4C1:R284C2,2,FALSE),0)"
Range("AI15").Select
Selection.Copy
Range("" & cost & "15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("AI").EntireColumn.Hidden = True
End Sub
Ten post został edytowany przez Autora dnia 18.01.21 o godzinie 11:54