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?










share|improve this question
























  • 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















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?










share|improve this question
























  • 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













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?










share|improve this question















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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


















  • 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












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





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    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

























    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





    share|improve this answer



























      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





      share|improve this answer

























        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





        share|improve this answer














        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






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Nov 22 at 1:00

























        answered Nov 22 at 0:50









        K.Dᴀᴠɪs

        6,463112140




        6,463112140






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

            Calculate evaluation metrics using cross_val_predict sklearn

            Insert data from modal to MySQL (multiple modal on website)