XL97: Deactivate Event Doesn't Occur After Moving Sheet

Last reviewed: March 13, 1998
Article ID: Q161836
The information in this article applies to:
  • Microsoft Excel 97 for Windows

SYMPTOMS

When you create a macro with a Deactivate event that applies to a worksheet, and you move the worksheet to another workbook, the Deactivate event macro for the worksheet does not occur.

CAUSE

This problem occurs because the Deactivate event does not occur for the worksheet. The Deactivate event occurs when an object is no longer the active window. When you move the worksheet to another workbook, the worksheet is still the active worksheet. After you select another worksheet in the workbook into which you moved the worksheet, the Deactivate event occurs.

NOTE: When you move a worksheet to another workbook, the SheetDeactivate event for the Workbook object also does not occur.

RESOLUTION

Instead of using either the Deactivate event for the worksheet or the SheetDeactivate event for the workbook, use the WindowDeactivate event for the workbook to trap the movement of the worksheet.

STATUS

Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support engineers can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

The following example macro traps the WindowDeactivate event for the Workbook:

  1. Save and close any open workbooks, and then create a new workbook.

  2. Start the Visual Basic Editor (press ALT+F11).

  3. If the Project Explorer window is not displayed, click Project Explorer on the View menu.

  4. In the Project Explorer window, double-click ThisWorkbook for the current project.

This step displays the Code module that is associated with the workbook.

  1. In the Object list, click Workbook.

This step displays a subprocedure for the Open event for the workbook.

  1. In the Procedure list, click WindowDeactivate.

This step displays a subprocedure for the WindowDeactivate event for the workbook.

  1. Type the following code in this subprocedure:

    MsgBox "You deactivated the previous window."

    The procedure should appear as follows:

    Private Sub Workbook_WindowDeactivate(ByVal Wn As Excel.Window)

               MsgBox "You deactivated the previous window."
    
           End Sub
    
    

  2. On the File menu, click "Close and Return to Microsoft Excel."

  3. Click New on the Standard toolbar to open another new workbook.

A message box appears with the following message:

   You deactivated the previous window.

  • Click OK to close the message box.

    The workbook you opened is the active workbook.

    1. Switch to the other workbook (the workbook you opened in step 1).

    2. Move Sheet1 from this workbook to the workbook you opened in step 9.

    A message box appears with the following message:

       You deactivated the previous window.
    
    
    Note that Sheet1 is in the second workbook.

    1. Click OK to close the message box.
    items.

    REFERENCES

    For more information about the Deactivate event, click the Office Assistant, type "deactivate", click Search, and then click to view "Deactivate Event".

    NOTE: If the Assistant is hidden, click the Office Assistant button on the Standard toolbar. If Microsoft Excel Help is not installed on your computer, please see the following article in the Microsoft Knowledge Base:

       ARTICLE-ID: Q120802
       TITLE     : Office: How to Add/Remove a Single Office
                   Program or Component
    

  • Additional query words: XL97
    Keywords : kbcode kbprg xlvbahowto xlvbainfo xlui
    Version : WINDOWS:97
    Platform : WINDOWS


    THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

    Last reviewed: March 13, 1998
    © 1998 Microsoft Corporation. All rights reserved. Terms of Use.