title: Excel Macro - Delete Row based upon variable date range
body: <p>I need to delete all rows that are outside of a given date range.  I was able to record a macro, but that only worked for a given data set, and would fail to delete all of the appropriate rows as more data was added.  I have been unsuccessful in modifying other macros that I have found in topics asking about the exact same thing....sorry.</p>
  
  <p>The date transaction dates are in column C, the earliest is in cell J1 (is often a formula, if that matters, but I could change that), and end of the date range is in cell L1.  </p>
  
  <p>I tried to use this code previously posted by Dan Wagner:</p>
  
  <pre><code>    Option Explicit
  Sub DeleteDateWithAutoFilter()
  
  Dim MySheet As Worksheet, MyRange As Range
  Dim LastRow As Long, LastCol As Long
  
  'turn off alerts
  Application.DisplayAlerts = False
  
  'set references up-front
  Set MySheet = ThisWorkbook.Worksheets("Sheet1")
  
  'identify the last row in column A and the last col in row 1
  'then assign a range to contain the full data "block"
  With MySheet
      LastRow = .Range("A" &amp; .Rows.Count).End(xlUp).Row
      LastCol = .Range("A" &amp; .Columns.Count).End(xlToLeft).Column
      Set MyRange = .Range(.Cells(1, 1), .Cells(LastRow, LastCol))
  End With
  
  'apply autofilter to the range showing only dates
  'older than january 1st, 2013, then deleting
  'all the visible rows except the header
  With MyRange
      .AutoFilter Field:=1, Criteria1:="&lt;1/1/2013"
      .SpecialCells(xlCellTypeVisible).Offset(1, 0).Resize(.Rows.Count).Rows.Delete
  End With
  
  'turn off autofilter safely
  With MySheet
      .AutoFilterMode = False
      If .FilterMode = True Then
          .ShowAllData
      End If
  End With
  
  'turn alerts back on
  Application.DisplayAlerts = True
  
  End Sub``
  </code></pre>
  
  <p>Thank you in advance!</p>