Workbook_BeforeSave() 1004 Error

J

joel.brewster

All,

I know that this has been asked a number of times in other posts, but I
have yet to put it together in the context that I need. I am using
Excel97 on XP. I would like to do a SaveAs any time the user attempts
any sort of Save. My plan was to use the Workbook_BeforeSave event to
prompt the user to enter another filename each time they try to save
and process accordingly. My code is listed below. Any help would be
appreciated.

TIA,

Joel Brewster

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)

On Error GoTo ErrHandler

Call SaveAsDBF
Cancel = True

ErrHandler:
If Err.Number <> 0 Then
Cancel = True
End If

End Sub

Public Sub SaveAsDBF()

Dim strFileName As String

On Error GoTo ErrHandler

strFileName = Application.GetSaveAsFilename("*.dbf", "dBase
Files (*.dbf),*.dbf", 7, "Save DBF")
If UCase(strFileName) <> "FALSE" Then
Application.EnableEvents = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:=strFileName,
FileFormat:=xlDBF4
Application.DisplayAlerts = True
Application.EnableEvents = True
End If

ErrHandler:
If Err.Number <> 0 Then
MsgBox "Error in SaveAsDBF: " & Err.Number & " - " &
Err.Description
Err.Clear
Application.DisplayAlerts = True
Application.EnableEvents = True
End If

End Sub
 
B

Bob Phillips

This doesn't prompt for a new filename, but gets the user to browse for a
filename (which they can then input).

What doesn't happen that you want? Did you put the code in the Thisworkbook
code module.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
J

joel.brewster

Thanks for your response Bob. The code is located in the ThisWorkbook
module in Sub Workbook_BeforeSave and does prompt for the new filename
and does not prompt for an overwrite. However, whenever I compile it
and run without debugging an error is raised indicating a 1004 - Method
SaveAs of object '_Workbook' failed. Everything that I've read
indicates that the above code should work but it does not for me. Any
ideas would be appreciated.

Thanks, Joel
 
J

joel.brewster

I forgot to mention that my workbook is password protected. I read
somewhere that the protection feature might cause strange behavior so I
disable it and everything works well. It would be nice if I could
protect the code from modification though if anyone has ideas.

TIA

Joel
 
B

Bob Phillips

Could you not turn protection off in the code, do your stuff, then
re-protect?

--

HTH

RP
(remove nothere from the email address if mailing direct)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

Private Sub Workbook_BeforeSave 2
BeforeSave 7
Save All Worksheets as CSV 7
Workbook_BeforeSave 8
How to Save this? 2
BeforeSave Event 5
Workbook_BeforeSave() 3
Save as CSV 1

Top