Are you sure you want SaveAs rather than SaveCopyAs? Also, you should
disable events before doing the save -- otherwise you'll loop.
Sub ThisWorkbook_BeforeSave(ByVal SaveAsUI As Boolean, _
ByRef Cancel As Boolean)
Dim FName As String
On Error GoTo EXIT_SUB:
Application.EnableEvents = False
Application.DisplayAlerts = False
Set WshShell = CreateObject("WScript.Shell")
FName = WshShell.SpecialFolders("Desktop") & _
"\" & ThisWorkbook.Name
ThisWorkbook.SaveCopyAs Filename:=FName
EXIT_SUB:
Application.DisplayAlerts = True
Application.EnableEvents = True
End Sub
--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting
www.cpearson.com
(email on the web site)
"J.W. Aldridge" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Hi.
>
> I have this code that i was running "beforeclose", however I adjusted
> it to try to make it a "beforesave" code however, it doesnt work. No
> error messages, but when i check my desktop, its not there.
>
>
> Any advice?
>
>
> Sub ThisWorkbook_BeforeSave(ByVal SaveAsUI As Boolean, ByRef Cancel As
> Boolean)
> Application.DisplayAlerts = False
> Set WshShell = CreateObject("WScript.Shell")
> ThisWorkbook.SaveAs Filename:=WshShell.SpecialFolders("Desktop") &
> "\" & ThisWorkbook.Name
> Application.DisplayAlerts = True
> End Sub
>