title: Excel VBA - Entering Filter into Pivot Table returning Object Required
body: <p>I have some VBA code which is set up to look up a dynamic (changing) table of data, the code then changes the range to fit into pivot tables, and refreshes the pivot tables based on the new range.</p>
  
  <p>The code works until it reaches the part where it needs to apply a filter.  I have a date value which I have declared under a String called PivotFilter, when the code goes to apply the filter, i get a Run Time error 1004 - Application defined or Object defined error</p>
  
  <p>I have been trying to figure this out for the last two hours, and cannot seem to fix it, I have tried to change the string to a range, this also didn't work.  Any suggestions?</p>
  
  <p><em>EDIT</em>
  Fixed the typo in the erroneous section, and i'm still getting application defined or object defined error</p>
  
  <pre><code>Sub PortfolioDataLoad()
  
  Dim wb1 As Workbook
  Dim ws1, ws2, ws3, ws4, ws5 As Worksheet
  Dim r1, r2, r3 As Range
  Dim StartPoint, DataRange As Range
  Dim PivotName, Pivotname2, Pivotname3, Pivotname4 As String
  Dim Datefrom, Dateto As Range
  Dim PivotFilter As String
  
  
  PivotFilter = Worksheets("Configuration").Range("B1")
  
  PivotName = "PivotTable3"
  Pivotname2 = "PivotTable4"
  Pivotname3 = "PivotTable5"
  Pivotname4 = "PivotTable1"
  
  Application.StatusBar = "Transforming data into report graphs..."
  
  'Set Variables Here
  
  Set wb1 = ThisWorkbook
  Set ws1 = wb1.Sheets("Control Sheet")
  Set ws2 = wb1.Sheets("Program Data")
  Set ws3 = wb1.Sheets("Configuration")
  Set ws4 = wb1.Sheets("Overview")
  
  
  If ws1.Visible = False Then
     ws1.Visible = True
  End If
  
  'Dynamically Retrieve Data from Program Data
  Set StartPoint = ws2.Range("A1")
  Set DataRange = ws2.Range(StartPoint, StartPoint.SpecialCells(xlLastCell))
  NewRange = ws2.Name &amp; "!" &amp; _
         DataRange.Address(ReferenceStyle:=xlR1C1)
  
  If WorksheetFunction.CountBlank(DataRange.Rows(1)) &gt; 0 Then
      MsgBox "One of your data columns in the 'Program Data' tab has a blank heading." &amp; vbNewLine _
        &amp; "Please fix and re-run!.", vbCritical, "Column Heading Missing!"
      Exit Sub
   End If
  
  'Change Pivot Range to Cache set above
  ws3.PivotTables(PivotName).ChangePivotCache _
      ThisWorkbook.PivotCaches.Create( _
      SourceType:=xlDatabase, _
      SourceData:=NewRange)
  
  ws3.PivotTables(Pivotname2).ChangePivotCache _
      ThisWorkbook.PivotCaches.Create( _
      SourceType:=xlDatabase, _
      SourceData:=NewRange)
  
  ws3.PivotTables(Pivotname3).ChangePivotCache _
      ThisWorkbook.PivotCaches.Create( _
      SourceType:=xlDatabase, _
      SourceData:=NewRange)
  
  ws3.PivotTables(Pivotname4).ChangePivotCache _
      ThisWorkbook.PivotCaches.Create( _
      SourceType:=xlDatabase, _
      SourceData:=NewRange)
  
  
  'Refresh Tables
  ws3.PivotTables(PivotName).RefreshTable
  ws3.PivotTables(Pivotname2).RefreshTable
  ws3.PivotTables(Pivotname3).RefreshTable
  ws3.PivotTables(Pivotname4).RefreshTable
  
  
  'Set Date in Pivot Table Filter - Results in Run-time error '424': Object Required
  
  ws3.PivotTables(PivotName).PivotFields("Planning Month").PivotFilters.Add _
  Type:=xlBeforeOrEqualTo, Value1:=PivotFilter
  
  ws3.PivotTables(Pivotname2).PivotFields("Planning Month").PivotFilters.Add _
  Type:=xlBeforeOrEqualTo, Value1:=PivotFilter
  
  ws3.PivotTables(Pivotname4).PivotFields("Planning Month").PivotFilters.Add _
  Type:=xlBeforeOrEqualTo, Value1:=PivotFilter
  
  End Sub
  </code></pre>