PDA

View Full Version : Userform limit?



Glaswegian
08-08-2012, 07:09 AM
Hi

Is there any limit on the number of userforms that Excel 2010 can work with?

I've been having issues with a workbook that I wrote before we switched to Excel 2010 and a developer team are now looking at a re-write. One of their suggestions is using userforms, which sounds fine except, depending on their proposed solution, there could be several hundred userforms in the final version.

I have some ideas to reduce this but I'm curious if Excel has any limits/issues in respect of userforms. Can't find anything definitive on the web.

Thanks.

Jan Karel Pieterse
08-08-2012, 07:17 AM
Several hundred userforms? I can hardly imagine an Excel solution that would need that many!
Why so many?

Glaswegian
08-08-2012, 07:32 AM
Hi Jan

It's a bit of a long story - the workbook is a guide (of sorts) for users - they answer the first question by clicking a Yes or No command button. Depending on the answer this leads to another question, and so on. Eventually an 'answer' is exported to a new workbook and saved. Worked great until we switched to Excel 2010 - Excel has issues rendering the command buttons and tends to collapse them all together on one single line. This happens using both ActiveX controls and Form controls. Apparently MS don't even have a solution so some kind of re-write seems to be the only option.

The developer team are suggesting using one userform for each question which could potentially lead to having several hundred userforms - hence my question.

Thanks.

Jan Karel Pieterse
08-08-2012, 07:49 AM
If you ask me the dev team has no idea about userforms.
I expect you only need one userform.
Does each question have a fixed set of answers?
Does the number of answers vary per question?

Kenneth Hobs
08-08-2012, 07:50 AM
The collapsing issue sounds like the TopLeftCell property was not set.

You could just fill a userform and reuse it.
e.g.
Sub test()
With UserForm1
.TextBox1.Text = "Hello"
.Show
End With
With UserForm1
.TextBox1.Text = "world!"
.Show
End With
End Sub