Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 17
Default BeforeClose and Workbooks.SaveAs Filename:=


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default BeforeClose and Workbooks.SaveAs Filename:=

1) Are you actually getting to the line of code. Put a break point (F9) on
the SAVEAS statement and make sure you are getting to the line
2) How do you know that the file is not getting saved/changed? try
refreshing the window browser you are using to make sure the file isn't
updated or try saving the file under a different name
3) Maybe you workbook hasn't changed since the last time you saved the file.
Make a changed to the worksbook and try running the code again.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 17
Default BeforeClose and Workbooks.SaveAs Filename:=

Hi Joel - Thanks for helping.

1. Yes, I put a beak on the line; highlighted dark red. I get to the line. I
can see the appropriate values in the tooltip. I "Add Watch" - the values are
there. Everything cast properly. The length of the SAVEAS filename is 84.
2. I keep entering a file in the browse under the path the dialog shows. The
file isn't there that for sure. Did a drive search - the file isn't there.
3. Shouldn't matter if it hasn't changed since I am SAVEAS - right? The WB
is set as readonly from the Windows attributes perspective. The point w this
wb is that it shouldn't change which is why I am prompting to save.

This is actually a common proc - this WB save function. It's been alright at
least since last year at this time. Running XL 2002 from Office Pro 2002 and
XP SP3 and IE 7.05xxx

"Joel" wrote:

1) Are you actually getting to the line of code. Put a break point (F9) on
the SAVEAS statement and make sure you are getting to the line
2) How do you know that the file is not getting saved/changed? try
refreshing the window browser you are using to make sure the file isn't
updated or try saving the file under a different name
3) Maybe you workbook hasn't changed since the last time you saved the file.
Make a changed to the worksbook and try running the code again.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 9,101
Default BeforeClose and Workbooks.SaveAs Filename:=

The only thing I can think of that may be the cause of the problem is if the
file was being save with the wrong extension. If the extension was a
reserved extension for system files and on the window explorer you have the
option to hide system files then you wouldn't find the file even though it is
there. Make sure you have the XLS extension on the end of the filename.

"MeistersingerVonNurnberg" wrote:

Hi Joel - Thanks for helping.

1. Yes, I put a beak on the line; highlighted dark red. I get to the line. I
can see the appropriate values in the tooltip. I "Add Watch" - the values are
there. Everything cast properly. The length of the SAVEAS filename is 84.
2. I keep entering a file in the browse under the path the dialog shows. The
file isn't there that for sure. Did a drive search - the file isn't there.
3. Shouldn't matter if it hasn't changed since I am SAVEAS - right? The WB
is set as readonly from the Windows attributes perspective. The point w this
wb is that it shouldn't change which is why I am prompting to save.

This is actually a common proc - this WB save function. It's been alright at
least since last year at this time. Running XL 2002 from Office Pro 2002 and
XP SP3 and IE 7.05xxx

"Joel" wrote:

1) Are you actually getting to the line of code. Put a break point (F9) on
the SAVEAS statement and make sure you are getting to the line
2) How do you know that the file is not getting saved/changed? try
refreshing the window browser you are using to make sure the file isn't
updated or try saving the file under a different name
3) Maybe you workbook hasn't changed since the last time you saved the file.
Make a changed to the worksbook and try running the code again.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 17
Default BeforeClose and Workbooks.SaveAs Filename:=

Hi Joel -

Thanks again pal. Anyways, I changed the readonly attribute under Windows,
and the file saves over itself no problem when its changed. That happens
through an adjacent branch of logic to the SAVEAS, but is in the same public
function

file extension is clean; I am showing all sys/hidden files and folders in
Explorer as a typical personal approach... nothing there...

I know windows likes to hide things (like recycler files). I have procs that
look for that kind of stuff - the file isn't there... Further, when I hit the
line of code in the debugger, I don't see any hit to the drive... for a 2mb
wb i should get a little burst - nothing.

any ideas may help...


"Joel" wrote:

The only thing I can think of that may be the cause of the problem is if the
file was being save with the wrong extension. If the extension was a
reserved extension for system files and on the window explorer you have the
option to hide system files then you wouldn't find the file even though it is
there. Make sure you have the XLS extension on the end of the filename.

"MeistersingerVonNurnberg" wrote:

Hi Joel - Thanks for helping.

1. Yes, I put a beak on the line; highlighted dark red. I get to the line. I
can see the appropriate values in the tooltip. I "Add Watch" - the values are
there. Everything cast properly. The length of the SAVEAS filename is 84.
2. I keep entering a file in the browse under the path the dialog shows. The
file isn't there that for sure. Did a drive search - the file isn't there.
3. Shouldn't matter if it hasn't changed since I am SAVEAS - right? The WB
is set as readonly from the Windows attributes perspective. The point w this
wb is that it shouldn't change which is why I am prompting to save.

This is actually a common proc - this WB save function. It's been alright at
least since last year at this time. Running XL 2002 from Office Pro 2002 and
XP SP3 and IE 7.05xxx

"Joel" wrote:

1) Are you actually getting to the line of code. Put a break point (F9) on
the SAVEAS statement and make sure you are getting to the line
2) How do you know that the file is not getting saved/changed? try
refreshing the window browser you are using to make sure the file isn't
updated or try saving the file under a different name
3) Maybe you workbook hasn't changed since the last time you saved the file.
Make a changed to the worksbook and try running the code again.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default BeforeClose and Workbooks.SaveAs Filename:=

Seems very odd. Try putting a break point on the line after your SaveAs
line. Then
use the tool tip display to check the values of the two variables for
workbook name after it has executed and before the macro ends. If both are
correct at that point, and it still does not save or change the window
caption at the top of the screen, then there is a real problem.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 17
Default BeforeClose and Workbooks.SaveAs Filename:=

Hi -

I performed everything as you stated. The values are correct.

Maybe it has something to do w the wb being set as readonly from a Windows /
DOS perspective...

Or, perhaps ... In the BeforeClose, all the way at the end,
ThisWorkbook.Saved = True has something to do w it



"JLGWhiz" wrote:

Seems very odd. Try putting a break point on the line after your SaveAs
line. Then
use the tool tip display to check the values of the two variables for
workbook name after it has executed and before the macro ends. If both are
correct at that point, and it still does not save or change the window
caption at the top of the screen, then there is a real problem.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default BeforeClose and Workbooks.SaveAs Filename:=

I just read the back and forth between you and Joel. There is nothing wrong
with the syntax that you are using. If the workbook is not protected, it
should save to the new name without a problem. The line of code that you
mentioned later in the BeforeSave sub should not matter since it would not
have executed at that point. You mentioned that the workbood is read only.
Does that mean Protected? If so, remove the protection and see if it will
execute the SaveAs then.

"MeistersingerVonNurnberg" wrote:

Hi -

I performed everything as you stated. The values are correct.

Maybe it has something to do w the wb being set as readonly from a Windows /
DOS perspective...

Or, perhaps ... In the BeforeClose, all the way at the end,
ThisWorkbook.Saved = True has something to do w it



"JLGWhiz" wrote:

Seems very odd. Try putting a break point on the line after your SaveAs
line. Then
use the tool tip display to check the values of the two variables for
workbook name after it has executed and before the macro ends. If both are
correct at that point, and it still does not save or change the window
caption at the top of the screen, then there is a real problem.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default BeforeClose and Workbooks.SaveAs Filename:=

I have tried to duplicate the condition with different protection settings
and cannot get it to perform as you described. In fact, it does saveas a new
file name with the workbook protected, so that was not the cause. I hope you
will post back if you do find the culprit.

"MeistersingerVonNurnberg" wrote:

Hi -

I performed everything as you stated. The values are correct.

Maybe it has something to do w the wb being set as readonly from a Windows /
DOS perspective...

Or, perhaps ... In the BeforeClose, all the way at the end,
ThisWorkbook.Saved = True has something to do w it



"JLGWhiz" wrote:

Seems very odd. Try putting a break point on the line after your SaveAs
line. Then
use the tool tip display to check the values of the two variables for
workbook name after it has executed and before the macro ends. If both are
correct at that point, and it still does not save or change the window
caption at the top of the screen, then there is a real problem.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 17
Default BeforeClose and Workbooks.SaveAs Filename:=

Hey again -

My problem may be where I allow a user to exit the wb in question. Under
File-Close (the wb) or File-Exit (xl altogether) - no problem - the save as
works as expected. Its when I trigger the close using ThisWorkbook.Close from
one of the available custom TB functions. The event fires for sure, I see
that, and ultimately, the wb closes. It just won't save as the file.


Maybe it has something to do w my understanding of how the events are
working. Help me if u can.


here is a public sub in its own module:

Public Sub Close_FromMe()
ThisWorkbook.Close SaveChanges:=False
End Sub


and here is ThisWorkbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbooks.Add
ThisWorkbook.Saved = True
End
End Sub


I would have thought that the close in the public sub would have triggered
the BeforeClose wb event, either at the wb or app level, and I would get a
new wb, presumably "Book1" and wb would close. It does not do that. It just
closes the wb, and leaves XL open w no wb.

If I File-Close, or "X" out of the wb, no problem, there is a new "Book1"
wb. And no code running (I presume bc its closed).


thanks a bunch pal, and ttul


"JLGWhiz" wrote:

I have tried to duplicate the condition with different protection settings
and cannot get it to perform as you described. In fact, it does saveas a new
file name with the workbook protected, so that was not the cause. I hope you
will post back if you do find the culprit.

"MeistersingerVonNurnberg" wrote:

Hi -

I performed everything as you stated. The values are correct.

Maybe it has something to do w the wb being set as readonly from a Windows /
DOS perspective...

Or, perhaps ... In the BeforeClose, all the way at the end,
ThisWorkbook.Saved = True has something to do w it



"JLGWhiz" wrote:

Seems very odd. Try putting a break point on the line after your SaveAs
line. Then
use the tool tip display to check the values of the two variables for
workbook name after it has executed and before the macro ends. If both are
correct at that point, and it still does not save or change the window
caption at the top of the screen, then there is a real problem.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.



  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default BeforeClose and Workbooks.SaveAs Filename:=

From what I see, you do not need the BeforeClose event Since you are not
saving the changes to your workbook, you could simply use the SaveAs and
create the new workbook. The old workbook is no longer open, but is still in
the disc file. You basically change the name of the open workbook this way.
Try it with a file and see if it does what you want. Just open a file, do a
saveas with a different name. You will see the new name on the window
caption and only one workbook open.
The old workbook will still appear in the folder.

You only need the BeforeSave event to do special tasks related to workbook
content, such as validating certain data fields, hiding rows, columns or
sheets, etc.
You don't need it for a SaveAs when the changes to the old book are not to
be saved.

"MeistersingerVonNurnberg" wrote:

Hey again -

My problem may be where I allow a user to exit the wb in question. Under
File-Close (the wb) or File-Exit (xl altogether) - no problem - the save as
works as expected. Its when I trigger the close using ThisWorkbook.Close from
one of the available custom TB functions. The event fires for sure, I see
that, and ultimately, the wb closes. It just won't save as the file.


Maybe it has something to do w my understanding of how the events are
working. Help me if u can.


here is a public sub in its own module:

Public Sub Close_FromMe()
ThisWorkbook.Close SaveChanges:=False
End Sub


and here is ThisWorkbook:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Workbooks.Add
ThisWorkbook.Saved = True
End
End Sub


I would have thought that the close in the public sub would have triggered
the BeforeClose wb event, either at the wb or app level, and I would get a
new wb, presumably "Book1" and wb would close. It does not do that. It just
closes the wb, and leaves XL open w no wb.

If I File-Close, or "X" out of the wb, no problem, there is a new "Book1"
wb. And no code running (I presume bc its closed).


thanks a bunch pal, and ttul


"JLGWhiz" wrote:

I have tried to duplicate the condition with different protection settings
and cannot get it to perform as you described. In fact, it does saveas a new
file name with the workbook protected, so that was not the cause. I hope you
will post back if you do find the culprit.

"MeistersingerVonNurnberg" wrote:

Hi -

I performed everything as you stated. The values are correct.

Maybe it has something to do w the wb being set as readonly from a Windows /
DOS perspective...

Or, perhaps ... In the BeforeClose, all the way at the end,
ThisWorkbook.Saved = True has something to do w it



"JLGWhiz" wrote:

Seems very odd. Try putting a break point on the line after your SaveAs
line. Then
use the tool tip display to check the values of the two variables for
workbook name after it has executed and before the macro ends. If both are
correct at that point, and it still does not save or change the window
caption at the top of the screen, then there is a real problem.

"MeistersingerVonNurnberg" wrote:


Hi All -

I've got a function call to save a workbook in the ThisWorkbook BeforeClose.
The function contains the following line:

Workbooks(sWbName).SaveAs Filename:=var_FileName

where, sWbName is a String, which is passed to the function as
ThisWorkbook.Name

and, var_FileName is a local Variant that is set as follows:
var_FileName = Application.GetSaveAsFilename(not showing args)


For whatever reason, the SaveAs line is not working. It raises no Err. Through
the debugger, sWbName is set as the currently opened workbook, and is correct.
Also through the debugger, var_FileName gets set properly by
Application.GetSaveAsFilename(), and contains the full path to the file.

Any ideas? Thanks.

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need code to close minimized workbooks in BeforeClose event Cheryl Excel Programming 3 August 17th 07 10:53 PM
SaveAs Filename:=filename, FileFormat:=xlCSV Teddy[_3_] Excel Programming 2 May 29th 07 02:34 PM
SaveAs filename PDF kidkarma Excel Programming 2 March 8th 07 08:25 AM
FileName SaveAs alanford Excel Programming 1 February 18th 05 01:01 PM
SaveAs Filename Help Ed[_14_] Excel Programming 2 November 20th 03 07:43 PM


All times are GMT +1. The time now is 11:00 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"