XL97: Unable to Show UserForms in Other Projects

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

SYMPTOMS

There is no way to directly show a UserForm that is contained in another Visual Basic for Applications project.

RESOLUTION

If you want to show a UserForm that is contained in another project you must either:

  • Import the UserForm from the other project.

    -or-

  • Reference the other project and call a subroutine (which shows the UserForm) in the other project.

Importing a UserForm from another project

  1. In the Project Explorer window, select the Project containing the UserForm you want to export.

  2. In the Project Explorer window, select the UserForm you are going to export.

  3. If the name of your UserForm is the same as that of any UserForm in the project that is going to import your UserForm, change the name of your UserForm to something unique.

  4. On the File menu, click Export File.

  5. In the Export File dialog box, select a destination folder for the .frm file, give your file a name, and then click Save.

  6. In the Project Explorer window, select the Project that is going to import the UserForm you saved in Step 5.

  7. On the File menu, click Import File.

  8. Locate and select the file you saved in Step 5, then click Open.

Now that the UserForm is part of the project, you are able to show it without error.

NOTE: If you want any macro code that is associated with the UserForm to also be imported with the UserForm, make sure this code is contained on the UserForm's code module and not simply on a module sheet inserted into the project.

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.

Referencing Another Project

In this example, the two projects in question will be VBAProject1 and VBAProject2. VBAProject1 is the project that contains your macro code from which you want to display the UserForm in VBAProject2. With this workaround, both UserForms can have the same name because the .Show method will always show the UserForm in the current project.

NOTE: In order to create a reference from VBAProject1 to VBAProject2, the file containing VBAProject2 must be a saved workbook.

  1. Make sure the name of each of the two projects in question have different names (as shown in the Properties window for each project).

  2. In the Project Explorer window, select VBAProject1.

  3. On the Tools menu, click References.

  4. In the "References - VBAProject1" dialog box, click the checkbox for VBAProject2 and then click OK.

  5. In a module sheet in VBAProject1, enter the following code:

          Sub Test1()
    
              Test2 'call the subroutine in VBAProject2
    
          End Sub
    
    

  6. In a module sheet in VBAProject2, enter the following code:

          Sub Test2()
    
              UserForm1.Show
    
          End Sub
    
    

  7. Run the "Test1" macro in VBAProject1.

The UserForm in VBAProject2 will be displayed.

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.

REFERENCES

For more information about the Show Method for UserForms, do the following:

  1. Insert a UserForm into your project.

  2. Click Code on the View menu.

  3. On a blank line on the UserForm (code) window type "Show", without quotation marks.

  4. Highlight the word "Show" you typed in Step 3 and press F1.

The Show Method of the Microsoft Visual Basic Reference will appear.


Additional query words: XL97 vbe vba
Keywords : kbcode kbprg xlvbahowto xlvbainfo
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.