Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Help with vbModeless


Hi all,

Well, I'm a complete VB newbie - and just trying to get a handle on
things. I've sort of solved my problem, but was hoping someone could
explain it to me (MS Help and Google have only confused me more!).

I am delving into VB to try to build a quiz application in excel. In a
nutshell, the user will navigate from form to form, with each form
displaying a list of questions to answer.

I've created the first form, which captures the user information (name
and other info) and the second form - which will be an introductory
explanation. Now I'm trying to add some navigation controls.

I've made a "back" button on form2, which allows the user to navigate
back. This generated the modal error, which I managed to fix by trial
and error using vbmodeless command. Problem is I don't really
understand what I have done!

Could anyone explain the modal and modeless windows a little further to
me?

So far -

FORM1 LAUNCHES FROM THE EXCEL WORKSHEET USING A BUTTON -

-Sub TakeMDLtest_Click()

UserForm1.Show vbModeless

End Sub-

FORM 1 IS

Private Sub CommandButton1_Click()

UserForm2.Show
UserForm1.Hide

End Sub

AND FORM 2 IS

Private Sub CommandButton2_Click()

UserForm2.Hide
UserForm1.Show vbModeless

End Sub


I've cut out any irrelevant code from my forms...and my navigation
works fine like this. But I just need someone to confirm that this is
right?

My apologies about the length of this post for such a simple question -
I'm sure as I learn more, I will also learn to keep things short and
simple!

Thanks for your help :)

sys :)


--
systematic
------------------------------------------------------------------------
systematic's Profile: http://www.excelforum.com/member.php...o&userid=25294
View this thread: http://www.excelforum.com/showthread...hreadid=387984

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Help with vbModeless


Instead of another edit....I have now got this working properly b
running form2 as the modeless form. Would still dearly love a
explanation or a link to further info!

Thanks again

--
systemati
-----------------------------------------------------------------------
systematic's Profile: http://www.excelforum.com/member.php...fo&userid=2529
View this thread: http://www.excelforum.com/showthread.php?threadid=38798

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,163
Default Help with vbModeless

From Help: "When a UserForm is modal, the user must respond before using any
other part of the application. No subsequent code is executed until the
UserForm is hidden or unloaded."

Modeless means you can do other things in Excel while the form is still
showing.
--
- K Dales


"systematic" wrote:


Hi all,

Well, I'm a complete VB newbie - and just trying to get a handle on
things. I've sort of solved my problem, but was hoping someone could
explain it to me (MS Help and Google have only confused me more!).

I am delving into VB to try to build a quiz application in excel. In a
nutshell, the user will navigate from form to form, with each form
displaying a list of questions to answer.

I've created the first form, which captures the user information (name
and other info) and the second form - which will be an introductory
explanation. Now I'm trying to add some navigation controls.

I've made a "back" button on form2, which allows the user to navigate
back. This generated the modal error, which I managed to fix by trial
and error using vbmodeless command. Problem is I don't really
understand what I have done!

Could anyone explain the modal and modeless windows a little further to
me?

So far -

FORM1 LAUNCHES FROM THE EXCEL WORKSHEET USING A BUTTON -

-Sub TakeMDLtest_Click()

UserForm1.Show vbModeless

End Sub-

FORM 1 IS

Private Sub CommandButton1_Click()

UserForm2.Show
UserForm1.Hide

End Sub

AND FORM 2 IS

Private Sub CommandButton2_Click()

UserForm2.Hide
UserForm1.Show vbModeless

End Sub


I've cut out any irrelevant code from my forms...and my navigation
works fine like this. But I just need someone to confirm that this is
right?

My apologies about the length of this post for such a simple question -
I'm sure as I learn more, I will also learn to keep things short and
simple!

Thanks for your help :)

sys :)


--
systematic
------------------------------------------------------------------------
systematic's Profile: http://www.excelforum.com/member.php...o&userid=25294
View this thread: http://www.excelforum.com/showthread...hreadid=387984


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,163
Default Help with vbModeless

Because you have your .Show command before the .Hide command, you have an
instant where both forms active which causes a conflict between the two modal
forms. (You cannot Hide UserForm2 if UserForm1 has the focus, which it does
when you show it).

Another way to recitfy this would have been to reverse the order of the
commands, i.e.:
UserForm1.Hide
UserForm2.Show

--
- K Dales


"systematic" wrote:


Instead of another edit....I have now got this working properly by
running form2 as the modeless form. Would still dearly love an
explanation or a link to further info!

Thanks again.


--
systematic
------------------------------------------------------------------------
systematic's Profile: http://www.excelforum.com/member.php...o&userid=25294
View this thread: http://www.excelforum.com/showthread...hreadid=387984


  #5   Report Post  
Posted to microsoft.public.excel.programming
jjk jjk is offline
external usenet poster
 
Posts: 42
Default Help with vbModeless

Hi,

As Dales said with vbModal the user has to interact only with the
active modal form.
With vbModeless the user is free to interact with other forms or the
excel workbook in the back.

Now the reason you are getting the error is that you are using the
module name to load and show the object.
Let me rephrase.
You are using Userform1.show.
This means that for every call of that VBA would Load and then show the
common object associated with the module. A better approach would be to
create an object of the module load it and then show it. I guess some
code will better demonstrate it.

FORM1 LAUNCHES FROM THE EXCEL WORKSHEET USING A BUTTON
--------------------
Private Sub CommandButton1_Click()

Dim frm1 As New UserForm1
Dim frm2 As New UserForm2
Load frm1
Load frm2

Do While True
frm1.Show
frm2.Show
Loop

Unload frm1
Unload frm2

End Sub
----------------

FORM 1 IS
----------------
Private Sub CommandButton1_Click()
Me.Hide
End Sub
----------------

FORM 2 IS
----------------
Private Sub CommandButton1_Click()
Me.Hide
End Sub
----------------


I havent tested the code. This is at the present in an infinite loop.
You can get out of it by hitting ctrl+Break.

Another implementaion would be
FORM1 LAUNCHES FROM THE EXCEL WORKSHEET USING A BUTTON
--------------------
Private Sub CommandButton1_Click()

Dim frm1 As New UserForm1
Load frm1

frm1.Show

Unload frm1

End Sub
----------------

FORM 1 IS
----------------
Private Sub CommandButton1_Click()
Dim frm2 As New UserForm2
Load frm2
frm2.Show
Unload frm2
End Sub
----------------

FORM 2 IS
----------------
Private Sub CommandButton1_Click()
Me.Hide
End Sub
----------------


Hope this helps you understand modal forms better.
Regards,
Jayant



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Help with vbModeless


Thanks to all for your assistance. It is much clearer now!

I really appreciate it

--
systemati
-----------------------------------------------------------------------
systematic's Profile: http://www.excelforum.com/member.php...fo&userid=2529
View this thread: http://www.excelforum.com/showthread.php?threadid=38798

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
vbModeless user form crashes Excel Plutopotamus Excel Programming 2 January 28th 05 03:19 PM
VBmodeless Harald Staff Excel Programming 5 June 26th 04 03:55 PM
VBmodeless jeffP Excel Programming 0 June 25th 04 05:12 AM
VBmodeless No Name Excel Programming 0 June 23rd 04 11:55 PM


All times are GMT +1. The time now is 02:28 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"