ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   MODAL vs. NonMODAL (https://www.excelbanter.com/excel-programming/317170-modal-vs-nonmodal.html)

JimP

MODAL vs. NonMODAL
 
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

Bob Phillips[_6_]

MODAL vs. NonMODAL
 
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)


"JimP" wrote in message
om...
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




microsoft.public.excel.programming[_3_]

MODAL vs. NonMODAL
 
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

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Robin Hammond[_2_]

MODAL vs. NonMODAL
 
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

"microsoft.public.excel.programming" wrote in message
...
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

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!




Bob Phillips[_6_]

MODAL vs. NonMODAL
 
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)


"Robin Hammond" wrote in message
...
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

"microsoft.public.excel.programming" wrote in message
...
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

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!






Peter T

MODAL vs. NonMODAL
 
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

"Bob Phillips" wrote in message
...
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)


"Robin Hammond" wrote in message
...
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

"microsoft.public.excel.programming" wrote in

message
...
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

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!









All times are GMT +1. The time now is 11:41 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com