It still wouldn't open, but I was able to save it, so I went that route. Paste the following code into the code module of the Dashboard sheet. To make it work you'll need to adjust the headings on the Data sheet (which are qq - yyyy) to match the validation values (which are yyyy - qq).
Private Sub Worksheet_Change(ByVal Target As Range)
Dim col As Long

    If Target.Address = Range("START").Address Or Target.Address = Range("STOP").Address Then
        If Range("START").Value >= Range("STOP").Value Then
            MsgBox "Start value must be < Stop value"
        Else
            Application.ScreenUpdating = False
            col = 9
            With Sheets("DATA")
                Do Until .Cells(1, col).Value = Range("START").Value Or .Cells(1, col).Value = ""
                    .Columns(col).Hidden = True
                    col = col + 1
                Loop
                Do Until .Cells(1, col).Value > Range("STOP").Value Or .Cells(1, col).Value = ""
                    .Columns(col).Hidden = False
                    col = col + 1
                Loop
                Do Until .Cells(1, col).Value = ""
                    .Columns(col).Hidden = True
                    col = col + 1
                Loop
            End With
        End If
    End If
End Sub