Excel ActiveX combo boxes are slowing file open/save


I am having open/save issues with an Excel XLS formatted workbook.

The workbook starts as 2 worksheets. There no issues at this stage.

The first worksheet contains 2 named ranges, each with 20 items.

The second worksheet contains a lightly formatted form which extends to F23. It also contains 2 columns of 15 (a total of 30 per sheet) ActiveX Combo Boxes which reference the 2 named ranges. The second worksheet is copied within the workbook for each “component” of a particular job. Some jobs require 60 components, thus the second worksheet might be copied (under scripted control) up to 60 times within one workbook. With 60 sheets, the file size remains under 2Mb, containing 1800 (30x60) ActiveX controls.

With that many sheets, the workbook takes 20 seconds or more to load. While that’s not the end of the world, it triggers unpredictable user responses. It just seems wrong on an otherwise fast system.

I first tested by removing all ActiveX Combo Boxes, after which the workbook opened instantaneously. I then substituted all the ActiveX Combo Box controls for Excel Combo Box form controls, after which the workbook also opened instantaneously. Unfortunately the form control version of the combo box does not provide the programmability I require.

Note that anywhere from 1 to 30 of the combo boxes might be selected on any one sheet.

Considering there are only 2 unique combo boxes throughout the entire workbook, how can I make the form more efficient?

Who is Participating?
Martin LissOlder than dirtCommented:
One per sheet.
Martin LissOlder than dirtCommented:
Can you attach the workbook, or a sample that shows the problem?
DavidBloomAuthor Commented:
Excellent comment. Attached.
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

Martin LissOlder than dirtCommented:
Is the following and similar code there because you have a problem with the comboboxes changing size? If so you might try this solution.

I'm of course not familiar with your workbook but if only one combobox needs to be used at any one time then you could also try the floating, single, combobox described in this article of mine.

Private Sub dd10_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    dd10.Width = 300
End Sub

Open in new window

DavidBloomAuthor Commented:
The VBA is there to temporarily display a 2 column drop down that are wider than the form column. I also tested by keeping the combo boxes and eliminating the VBA, but no difference in load times.

Thank you. I'll read up on your article.
DavidBloomAuthor Commented:
I like it!  Will work on an adaptation of your coding ...

Best to put one floating control per sheet, or one per workbook within a public module (or similar)?
DavidBloomAuthor Commented:
Thank you Martin.
Martin LissOlder than dirtCommented:
You're welcome and I'm glad I was able to help.

In my profile you'll find links to some articles I've written that may interest you.
Marty - MVP 2009 to 2013
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.