Home |
Search |
Today's Posts |
#1
![]() |
|||
|
|||
![]()
I have a workbook with an update button on (which has a macro behind it).
When I press this button I want a userform to open and display a flashing message for the duration of the macro. I have tested all the bits seperately and they all work fine - the update macro by itself works and updates the data and the userform opens and display a flashing message if opened by itself. The problem I have is, if I put the userform into the update macro, once I click the button the userform displays, but none of the code in the macro works. I have tried adding the DoEvents code in but this doesn't seem to help. Can anyone help me? Code below: ------------------------------------------------------------------------------------------------- Sub UpdateData() DoEvents UserForm1.Show ~ My Code UserForm1.Hide End Sub ------------------------------------------ Private Sub UserForm_Activate() Label1.Visible = False StartLoop: If Label1.Visible = False Then Label1.Visible = True Else Label1.Visible = False RunPause GoTo StartLoop End Sub ------------------------------------------ Sub RunPause() PauseTime = 0.75 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop End Sub ------------------------------------------ Private Sub UserForm_Terminate() End End Sub |
#2
![]() |
|||
|
|||
![]()
Unless you make the form's ShowModel property false this is true:
UserForm1.Show MsgBox "You won't see me until the form is unloaded/hidden" -- Jim Rech Excel MVP "cdb" wrote in message ... |I have a workbook with an update button on (which has a macro behind it). | When I press this button I want a userform to open and display a flashing | message for the duration of the macro. I have tested all the bits seperately | and they all work fine - the update macro by itself works and updates the | data and the userform opens and display a flashing message if opened by | itself. | | The problem I have is, if I put the userform into the update macro, once I | click the button the userform displays, but none of the code in the macro | works. I have tried adding the DoEvents code in but this doesn't seem to help. | | Can anyone help me? | | Code below: | ------------------------------------------------------------------------------------------------- | Sub UpdateData() | DoEvents | UserForm1.Show | ~ My Code | UserForm1.Hide | End Sub | | ------------------------------------------ | | Private Sub UserForm_Activate() | Label1.Visible = False | StartLoop: | If Label1.Visible = False Then Label1.Visible = True Else Label1.Visible = | False | RunPause | GoTo StartLoop | End Sub | | ------------------------------------------ | | Sub RunPause() | PauseTime = 0.75 ' Set duration. | Start = Timer ' Set start time. | Do While Timer < Start + PauseTime | DoEvents ' Yield to other processes. | Loop | End Sub | | ------------------------------------------ | | Private Sub UserForm_Terminate() | End | End Sub |
#3
![]() |
|||
|
|||
![]()
Jim,
If I make it modeless will it run the rest of the code, or will it keep looping through the code to make the label flash? I think the problem I'm having is trying to run two lots of code at once (one to update in the background which opens up other sheets and imports data, and one to load up the user form and make the label flash. Is there any other way of making the text flash without looping through some code to make the lebel visible and hiding it?? "Jim Rech" wrote: Unless you make the form's ShowModel property false this is true: UserForm1.Show MsgBox "You won't see me until the form is unloaded/hidden" -- Jim Rech Excel MVP "cdb" wrote in message ... |I have a workbook with an update button on (which has a macro behind it). | When I press this button I want a userform to open and display a flashing | message for the duration of the macro. I have tested all the bits seperately | and they all work fine - the update macro by itself works and updates the | data and the userform opens and display a flashing message if opened by | itself. | | The problem I have is, if I put the userform into the update macro, once I | click the button the userform displays, but none of the code in the macro | works. I have tried adding the DoEvents code in but this doesn't seem to help. | | Can anyone help me? | | Code below: | ------------------------------------------------------------------------------------------------- | Sub UpdateData() | DoEvents | UserForm1.Show | ~ My Code | UserForm1.Hide | End Sub | | ------------------------------------------ | | Private Sub UserForm_Activate() | Label1.Visible = False | StartLoop: | If Label1.Visible = False Then Label1.Visible = True Else Label1.Visible = | False | RunPause | GoTo StartLoop | End Sub | | ------------------------------------------ | | Sub RunPause() | PauseTime = 0.75 ' Set duration. | Start = Timer ' Set start time. | Do While Timer < Start + PauseTime | DoEvents ' Yield to other processes. | Loop | End Sub | | ------------------------------------------ | | Private Sub UserForm_Terminate() | End | End Sub |
#4
![]() |
|||
|
|||
![]()
I think the problem I'm having is trying to run two lots of code at once
Yes, you must bring them together probably in the Activate event. -- Jim Rech Excel MVP "cdb" wrote in message ... | Jim, | | If I make it modeless will it run the rest of the code, or will it keep | looping through the code to make the label flash? | | I think the problem I'm having is trying to run two lots of code at once | (one to update in the background which opens up other sheets and imports | data, and one to load up the user form and make the label flash. | | Is there any other way of making the text flash without looping through some | code to make the lebel visible and hiding it?? | | "Jim Rech" wrote: | | Unless you make the form's ShowModel property false this is true: | | UserForm1.Show | MsgBox "You won't see me until the form is unloaded/hidden" | | | -- | Jim Rech | Excel MVP | "cdb" wrote in message | ... | |I have a workbook with an update button on (which has a macro behind it). | | When I press this button I want a userform to open and display a flashing | | message for the duration of the macro. I have tested all the bits | seperately | | and they all work fine - the update macro by itself works and updates the | | data and the userform opens and display a flashing message if opened by | | itself. | | | | The problem I have is, if I put the userform into the update macro, once I | | click the button the userform displays, but none of the code in the macro | | works. I have tried adding the DoEvents code in but this doesn't seem to | help. | | | | Can anyone help me? | | | | Code below: | | ------------------------------------------------------------------------------------------------- | | Sub UpdateData() | | DoEvents | | UserForm1.Show | | ~ My Code | | UserForm1.Hide | | End Sub | | | | ------------------------------------------ | | | | Private Sub UserForm_Activate() | | Label1.Visible = False | | StartLoop: | | If Label1.Visible = False Then Label1.Visible = True Else Label1.Visible = | | False | | RunPause | | GoTo StartLoop | | End Sub | | | | ------------------------------------------ | | | | Sub RunPause() | | PauseTime = 0.75 ' Set duration. | | Start = Timer ' Set start time. | | Do While Timer < Start + PauseTime | | DoEvents ' Yield to other processes. | | Loop | | End Sub | | | | ------------------------------------------ | | | | Private Sub UserForm_Terminate() | | End | | End Sub | | | |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Date macro | Excel Discussion (Misc queries) | |||
Can't get simple macro to run | Excel Worksheet Functions | |||
Macro and If Statement | Excel Discussion (Misc queries) | |||
Macro Formula revision? | Excel Worksheet Functions | |||
Macro for multiple charts | Excel Worksheet Functions |