Activate a form ?

D

dhstein

I have a form that I use for a progress indicator. I activate the form by :

frmProgress.Show

This works fine the first time, but I want to be able to display the
progress for a second routine. I have the code all set up to handle it, but
when I hit the frmProgress.Show a second time I get this message:

Form Already Displayed - Can't show modally

I want to be able to execute the code within the form - right now I'm using
the event Private Sub UserForm_Activate(). Do I need a different event? How
can I initiate the code a second time if the form is already shown ? Thanks
for any help on this.
 
D

dhstein

Private Sub UserForm_Activate()

Dim Routine As String
Dim Label As String
Dim StackPointer As Integer

' Set the width of the progress bar to 0.
Me.LabelProgress.Width = 0

StackPointer = Range("Controls!W2").Value

Routine = Range("Controls!W" & StackPointer).Value

Label = Range("Controls!W" & (StackPointer + 1)).Value

Range("Controls!W2").Value = StackPointer + 2

Me.lblRoutineName.Caption = Label
Application.Run (Routine)

Range("Controls!W2").Value = Range("Controls!W2").Value - 2

If Range("Controls!W2").Value = 3 Then
Me.Hide
End If

End Sub
 
F

FSt1

hi
you didn't post all the code i think. I don't see where the progress meter
is being updated. seems to be another sub called routine.
so i am guessing.
i don't see where you close the form but i do see this........
If Range("Controls!W2").Value = 3 Then
Me.Hide
End If
what do you doing when the progress bar is done. here you are only hiding
it, not unloading it. this may be your problems. when you try to show a
hidden form, it is already loaded which i think is generating your error.
maybe you just need to unhide it.

Regards
FSt1
 
D

dhstein

Thanks for the reply. You may be right - and I'd like to try some things.
What are the methods available ? .Show .Hide .Load .Unload - what
other ones that I might try? Thanks.

David
 

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