Problem: I want to create a backup of a workbook on open and feel there
are four possible error conditions to handle. Each should display a
different message to tell the user what is wrong.
1. disk full
2. disk write protected
3. file already open
4. file is read-only

I have an (partial) error handler designed but find that no matter
which condition actually exists always takes the Case Else path.
Sometimes err.number is "1004" while othertimes it is "0" (as seen in
the message box). code follows.

What am I doing wrong?

Sub Auto_open()

On Error GoTo ErrorHandler
If InStr(1, ThisWorkbook.Name, ".bck") < 1 Then
tmp = InStr(1, ThisWorkbook.Name, ".")
bckName = Left(ThisWorkbook.Name, tmp - 1) + ".bck"
ActiveWorkbook.SaveCopyAs (bckName)
End If
ErrorHandler:
Select Case Err.Number

Case 61

msg = "Disk full. Click Yes to continue without creating a backup."
msg = msg + "Otherwise click No to exit Excel."

response = MsgBox(msg, vbYesNo, "Warning: Disk Full")


If response = 6 Then Exit Sub
Application.Quit
Case Else

r = MsgBox("Error # :" & Err.Number & Err.Description, vbOKOnly)

End Select

End Sub

thanks in advance.....