Workbook Prompts for Changes Upon Closing When no Changes Were Made
up vote
1
down vote
favorite
I have an Excel file that runs some ActiveX components. The downside is that it asks to save each time I close the file, even when I didn't make any changes.
I've tried adding the following code to the ThisWorkbook object:
Private Sub Workbook_Open()
ActiveWorkbook.Saved = True
End Sub
However, this doesn't seem to work. It still asks me to save the file when I try to close it without making changes.
Any help?
excel vba excel-vba activex
add a comment |
up vote
1
down vote
favorite
I have an Excel file that runs some ActiveX components. The downside is that it asks to save each time I close the file, even when I didn't make any changes.
I've tried adding the following code to the ThisWorkbook object:
Private Sub Workbook_Open()
ActiveWorkbook.Saved = True
End Sub
However, this doesn't seem to work. It still asks me to save the file when I try to close it without making changes.
Any help?
excel vba excel-vba activex
Shouldn't it be ActiveWorkbook.Save, without "d"?
– Basher
Nov 22 at 0:32
Check this link for some ideas to try.
– Portland Runner
Nov 22 at 0:34
@Basher - No,Save
will save it,Saved
will set the flag. It should probably be on close event if the activex controls run after opening/interacting with workbook.
– Portland Runner
Nov 22 at 0:36
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have an Excel file that runs some ActiveX components. The downside is that it asks to save each time I close the file, even when I didn't make any changes.
I've tried adding the following code to the ThisWorkbook object:
Private Sub Workbook_Open()
ActiveWorkbook.Saved = True
End Sub
However, this doesn't seem to work. It still asks me to save the file when I try to close it without making changes.
Any help?
excel vba excel-vba activex
I have an Excel file that runs some ActiveX components. The downside is that it asks to save each time I close the file, even when I didn't make any changes.
I've tried adding the following code to the ThisWorkbook object:
Private Sub Workbook_Open()
ActiveWorkbook.Saved = True
End Sub
However, this doesn't seem to work. It still asks me to save the file when I try to close it without making changes.
Any help?
excel vba excel-vba activex
excel vba excel-vba activex
edited Nov 22 at 1:13
K.Dᴀᴠɪs
6,463112140
6,463112140
asked Nov 22 at 0:28
knat
416
416
Shouldn't it be ActiveWorkbook.Save, without "d"?
– Basher
Nov 22 at 0:32
Check this link for some ideas to try.
– Portland Runner
Nov 22 at 0:34
@Basher - No,Save
will save it,Saved
will set the flag. It should probably be on close event if the activex controls run after opening/interacting with workbook.
– Portland Runner
Nov 22 at 0:36
add a comment |
Shouldn't it be ActiveWorkbook.Save, without "d"?
– Basher
Nov 22 at 0:32
Check this link for some ideas to try.
– Portland Runner
Nov 22 at 0:34
@Basher - No,Save
will save it,Saved
will set the flag. It should probably be on close event if the activex controls run after opening/interacting with workbook.
– Portland Runner
Nov 22 at 0:36
Shouldn't it be ActiveWorkbook.Save, without "d"?
– Basher
Nov 22 at 0:32
Shouldn't it be ActiveWorkbook.Save, without "d"?
– Basher
Nov 22 at 0:32
Check this link for some ideas to try.
– Portland Runner
Nov 22 at 0:34
Check this link for some ideas to try.
– Portland Runner
Nov 22 at 0:34
@Basher - No,
Save
will save it, Saved
will set the flag. It should probably be on close event if the activex controls run after opening/interacting with workbook.– Portland Runner
Nov 22 at 0:36
@Basher - No,
Save
will save it, Saved
will set the flag. It should probably be on close event if the activex controls run after opening/interacting with workbook.– Portland Runner
Nov 22 at 0:36
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
Ah, yes I have had to deal with this issue myself. Since these components run AFTER the workbook is opened (and after your Workbook_Open()
event), you need to run your code when you're closing your workbook.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Should be placed in the ThisWorkbook
code module.
To avoid accidentally not saving the workbook when you actually update it, you could try setting your own global variable flag - which should be located in a standard module and have the Public
scope. Afterwards, you can use the Workbook_SheetChange
event to set this flag when you actually change any content within the workbook:
Standard Module: Add Pub Flag
Public bPromptSave as Boolean
Workbook Module: Event Handlers
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
bPromptSave = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if not bPromptSave then ThisWorkbook.Saved = True
End Sub
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Ah, yes I have had to deal with this issue myself. Since these components run AFTER the workbook is opened (and after your Workbook_Open()
event), you need to run your code when you're closing your workbook.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Should be placed in the ThisWorkbook
code module.
To avoid accidentally not saving the workbook when you actually update it, you could try setting your own global variable flag - which should be located in a standard module and have the Public
scope. Afterwards, you can use the Workbook_SheetChange
event to set this flag when you actually change any content within the workbook:
Standard Module: Add Pub Flag
Public bPromptSave as Boolean
Workbook Module: Event Handlers
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
bPromptSave = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if not bPromptSave then ThisWorkbook.Saved = True
End Sub
add a comment |
up vote
0
down vote
Ah, yes I have had to deal with this issue myself. Since these components run AFTER the workbook is opened (and after your Workbook_Open()
event), you need to run your code when you're closing your workbook.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Should be placed in the ThisWorkbook
code module.
To avoid accidentally not saving the workbook when you actually update it, you could try setting your own global variable flag - which should be located in a standard module and have the Public
scope. Afterwards, you can use the Workbook_SheetChange
event to set this flag when you actually change any content within the workbook:
Standard Module: Add Pub Flag
Public bPromptSave as Boolean
Workbook Module: Event Handlers
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
bPromptSave = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if not bPromptSave then ThisWorkbook.Saved = True
End Sub
add a comment |
up vote
0
down vote
up vote
0
down vote
Ah, yes I have had to deal with this issue myself. Since these components run AFTER the workbook is opened (and after your Workbook_Open()
event), you need to run your code when you're closing your workbook.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Should be placed in the ThisWorkbook
code module.
To avoid accidentally not saving the workbook when you actually update it, you could try setting your own global variable flag - which should be located in a standard module and have the Public
scope. Afterwards, you can use the Workbook_SheetChange
event to set this flag when you actually change any content within the workbook:
Standard Module: Add Pub Flag
Public bPromptSave as Boolean
Workbook Module: Event Handlers
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
bPromptSave = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if not bPromptSave then ThisWorkbook.Saved = True
End Sub
Ah, yes I have had to deal with this issue myself. Since these components run AFTER the workbook is opened (and after your Workbook_Open()
event), you need to run your code when you're closing your workbook.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
Should be placed in the ThisWorkbook
code module.
To avoid accidentally not saving the workbook when you actually update it, you could try setting your own global variable flag - which should be located in a standard module and have the Public
scope. Afterwards, you can use the Workbook_SheetChange
event to set this flag when you actually change any content within the workbook:
Standard Module: Add Pub Flag
Public bPromptSave as Boolean
Workbook Module: Event Handlers
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
bPromptSave = True
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if not bPromptSave then ThisWorkbook.Saved = True
End Sub
edited Nov 22 at 1:00
answered Nov 22 at 0:50
K.Dᴀᴠɪs
6,463112140
6,463112140
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422305%2fworkbook-prompts-for-changes-upon-closing-when-no-changes-were-made%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Shouldn't it be ActiveWorkbook.Save, without "d"?
– Basher
Nov 22 at 0:32
Check this link for some ideas to try.
– Portland Runner
Nov 22 at 0:34
@Basher - No,
Save
will save it,Saved
will set the flag. It should probably be on close event if the activex controls run after opening/interacting with workbook.– Portland Runner
Nov 22 at 0:36