How can I make my user input work with this Macro?

ryandonovan22

New Member
Joined
Sep 17, 2015
Messages
36
I am doing a filter on Pivot data for filter on the last 12 months of data, because this does not seem to be built into excel.

This is my VBA code
Excel Formula:
Sub Filterupdate()
'
' Filterupdate Macro

Dim StartDate As Date
Dim EndDate As Date

StartDate = InputBox("Choose Start date (dd/mm/yyyy)")
EndDate = InputBox("Choose End date (dd/mm/yyyy)")

    Sheets("Rolling OTD").Select
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Planned Delivery Date"). _
        ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Years").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarters").ClearAllFilters
    ActiveSheet.PivotTables("PivotTable1").PivotFields("Planned Delivery Date"). _
        PivotFilters.Add2 Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate
        
End Sub

The user inputs work fine, but the line "PivotFilters.Add2 Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate" does not seem to like either StartDate or EndDate being used.

Please help!
 

Excel Facts

Create a chart in one keystroke
Select the data and press Alt+F1 to insert a default chart. You can change the default chart to any chart type
Try this

"PivotFilters.Add"

And the dates declared as string:

VBA Code:
Sub Filterupdate()
'
' Filterupdate Macro

  Dim StartDate As String
  Dim EndDate As String
  
  StartDate = InputBox("Choose Start date (dd/mm/yyyy)")
  EndDate = InputBox("Choose End date (dd/mm/yyyy)")

  Sheets("Rolling OTD").Select
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Planned Delivery Date"). _
    ClearAllFilters
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Years").ClearAllFilters
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarters").ClearAllFilters
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Planned Delivery Date"). _
    PivotFilters.Add Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate
End Sub
 
Upvote 0
Try this

"PivotFilters.Add"

And the dates declared as string:

VBA Code:
Sub Filterupdate()
'
' Filterupdate Macro

  Dim StartDate As String
  Dim EndDate As String
 
  StartDate = InputBox("Choose Start date (dd/mm/yyyy)")
  EndDate = InputBox("Choose End date (dd/mm/yyyy)")

  Sheets("Rolling OTD").Select
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Planned Delivery Date"). _
    ClearAllFilters
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Years").ClearAllFilters
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Quarters").ClearAllFilters
  ActiveSheet.PivotTables("PivotTable1").PivotFields("Planned Delivery Date"). _
    PivotFilters.Add Type:=xlDateBetween, Value1:=StartDate, Value2:=EndDate
End Sub

Thank you very much, this worked perfectly!
 
Upvote 0
I'm glad to help you. Thanks for the feedback.
 
Upvote 0

Forum statistics

Threads
1,215,223
Messages
6,123,722
Members
449,116
Latest member
Aaagu

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top