MODAL vs. NonMODAL

J

JimP

To ALl,

I have a USER FORM that works fine as a MODAL form ... Since it was
developed on an Excel 97 platform. I understand and accept the
limitation ... IF the Workbook is opened on Excel 2000 platform,
however, I'd like to be able to Display the same form as Non-Modal ...

Question: Can it be determined in VBA code, prior to the USER Form
being loaded, that the current version of excel is capable of
displaying a Non-Modal form?

Thanks ....

Jim P
 
B

Bob Phillips

Jim,

You could test the application version

Sub show()
If Val(Application.Version) >= 9 Then
ShowNonModal
Else
ShowModal
End If
End Sub

Sub ShowNonModal()
UserForm1.show 0
End Sub

Sub ShowModal()
UserForm1.show
End Sub

You have to be careful of compilation errors in XL97, so you might need to
put the ShowNonModal proc in a separate module. I can't test as I don't have
97 handy.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
M

microsoft.public.excel.programming

Bob,

Thanks for the PROMPT response ...

I coded as you specified ...
''''''''''''''''''''''
Private Sub NAVIGATIONButton_Click()
Application.ScreenUpdating = True
Load frmNAVIGATION
If Val(Application.Version) >= 9 Then
ShowNonModal
Else
ShowModal
End If
End Sub

Sub ShowModal()
frmNAVIGATION.show 'Excel 97
End Sub

Sub ShowNonModal()
frmNAVIGATION.show 0 'Excel 2000 +
End Sub
''''''''''''''''''''''''''''''''''

WORKS PERFECT IN BOTH VERSIONS OF EXCEL ...
THANKS a MILLION ...

J.Pellechi
 
R

Robin Hammond

Bob is absolutely right and using the 0 rather than vbModeless statement
makes this work, but for safety's sake on this technique where you are
differentiating between 97 and later versions you might want to add a
conditional compilation clause around the non-modal statement.

ie.
Sub ShowNonModal()
#If VBA6 Then
frmNAVIGATION..Show vbModeless
#End If
End Sub

Robin Hammond
www.enhanceddatasystems.com
 
B

Bob Phillips

Not correct. vbModeless works just as well. It would only be a problem as a
run time error as in XL97 the show would have too many arguments, but as the
version test stops it taking this path there is no problem.

--

HTH

RP
(remove nothere from the email address if mailing direct)
 
P

Peter T

In development, if regularly compiling the project in XL97, I find it's more
"convenient" to use the conditional construct with VBA6. Avoids the compile
error and the necessity to add the Modeless routine only after compiling.
Apart from this, both methods work fine.

Regards,
Peter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top