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

How can you automate Excel?
Press Alt+F11 from Windows Excel to open the Visual Basic for Applications (VBA) editor.
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,254
Messages
6,123,893
Members
449,132
Latest member
Rosie14

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