Best way to avoid users to cancel my routine halfway through while managing other errors
I think I've managed to improve (or clean at least) the code mentioned above:

Private Sub Worksheet_Activate()

Application.EnableCancelKey = xlErrorHandler
On Error GoTo errHandler
Application.ScreenUpdating = False
ActiveWindow.DisplayHeadings = False

ActiveSheet.Unprotect "XXXXX"
ActiveSheet.ShowAllData
ActiveSheet.Range("estimate_table").AutoFilter Field:=59, Criteria1:="&gt;0"
ActiveSheet.Protect "XXXXX"

Application.ScreenUpdating = True
Application.EnableCancelKey = xlInterupt

Exit Sub

exitHandler:
    ActiveSheet.Protect "XXXXX"
    Application.EnableCancelKey = xlInterupt
    Application.ScreenUpdating = True
    Exit Sub
errHandler:
    If Err.Number = 18 Then
    Resume exitHandler
    Else
    Resume Next
    End If

End Sub


What I still don't understand is why it seems like I still can't stop the routine by pressing ESC (90% of the time, the process goes through and once in a while the process is indeed stopped)..