Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello Everybody,
I have copied a code for a timer in a post and applied it to my workbook to automatically show a userform after a short period of time. My big problem is that when I close the workbook without quitting Excel the timer continue running and re-open my workbook after the preset period to show the userform again. Is there a way to have the timer stopped when closing the workbook? My code bellow: In Module: Option Explicit Public nSaveWB As Date Public Sub SetSaveWBTimer() nSaveWB = Now + TimeSerial(0, 0, 5) ' 5 minutes Application.OnTime nSaveWB, "SaveWB" End Sub Public Sub SaveWB() Alerte.Show End Sub In ThisWorkbook: Private Sub workbook_open() Alerte.Show End Sub In Userform: (called Alerte) Private Sub CommandButton1_Click() Alerte.Hide Call SetSaveWBTimer End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Call SetSaveWBTimer End If End Sub Thanks for your help. -- Regards, Cajeto 63. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Cajeto63,
I use the below code to show the time on my userform. In the terminate event of the userform I call Stoptimer so that I don't get the same problem... (you might put it in the workbook beforeclose event) Hope it helps, Ozgur Public RunWhen As Double Public Const cRunIntervalSeconds = 60 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=True End Sub Sub The_Sub() UserForm2.Label475.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label476.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label514.Caption = Format(Now, "dd mmm yy hh:mm") Call StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=False End Sub "Cajeto 63" wrote: Hello Everybody, I have copied a code for a timer in a post and applied it to my workbook to automatically show a userform after a short period of time. My big problem is that when I close the workbook without quitting Excel the timer continue running and re-open my workbook after the preset period to show the userform again. Is there a way to have the timer stopped when closing the workbook? My code bellow: In Module: Option Explicit Public nSaveWB As Date Public Sub SetSaveWBTimer() nSaveWB = Now + TimeSerial(0, 0, 5) ' 5 minutes Application.OnTime nSaveWB, "SaveWB" End Sub Public Sub SaveWB() Alerte.Show End Sub In ThisWorkbook: Private Sub workbook_open() Alerte.Show End Sub In Userform: (called Alerte) Private Sub CommandButton1_Click() Alerte.Hide Call SetSaveWBTimer End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Call SetSaveWBTimer End If End Sub Thanks for your help. -- Regards, Cajeto 63. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Ozgur,
Thank you very much for you help. I replaced the code I was using with yours and it partially works but I get another problem. When I run the sub StopTimer by hand from the VB windows it stops showing the userform which is a very good point. But VB does not want me to use the Workbook_BeforeClose event. It gives me a compile error saying:"Procedure declaration does not match description of event or procedure having the same name" and I'm not sure I understand what it means. Could it come from the fact that I already have a Workbook_open event in the workbook? And if so how can I get rid of the problem? -- Regards, Cajeto 63. "Ozgur Pars" wrote: Hi Cajeto63, I use the below code to show the time on my userform. In the terminate event of the userform I call Stoptimer so that I don't get the same problem... (you might put it in the workbook beforeclose event) Hope it helps, Ozgur Public RunWhen As Double Public Const cRunIntervalSeconds = 60 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=True End Sub Sub The_Sub() UserForm2.Label475.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label476.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label514.Caption = Format(Now, "dd mmm yy hh:mm") Call StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=False End Sub "Cajeto 63" wrote: Hello Everybody, I have copied a code for a timer in a post and applied it to my workbook to automatically show a userform after a short period of time. My big problem is that when I close the workbook without quitting Excel the timer continue running and re-open my workbook after the preset period to show the userform again. Is there a way to have the timer stopped when closing the workbook? My code bellow: In Module: Option Explicit Public nSaveWB As Date Public Sub SetSaveWBTimer() nSaveWB = Now + TimeSerial(0, 0, 5) ' 5 minutes Application.OnTime nSaveWB, "SaveWB" End Sub Public Sub SaveWB() Alerte.Show End Sub In ThisWorkbook: Private Sub workbook_open() Alerte.Show End Sub In Userform: (called Alerte) Private Sub CommandButton1_Click() Alerte.Hide Call SetSaveWBTimer End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Call SetSaveWBTimer End If End Sub Thanks for your help. -- Regards, Cajeto 63. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Cajeto,
I tried it out now and I have no problems with the before_close event. Maybe you can post your code. Just to set the record straight this is not my code(I wish) I found it on the net... Ozgur "Cajeto 63" wrote: Hi Ozgur, Thank you very much for you help. I replaced the code I was using with yours and it partially works but I get another problem. When I run the sub StopTimer by hand from the VB windows it stops showing the userform which is a very good point. But VB does not want me to use the Workbook_BeforeClose event. It gives me a compile error saying:"Procedure declaration does not match description of event or procedure having the same name" and I'm not sure I understand what it means. Could it come from the fact that I already have a Workbook_open event in the workbook? And if so how can I get rid of the problem? -- Regards, Cajeto 63. "Ozgur Pars" wrote: Hi Cajeto63, I use the below code to show the time on my userform. In the terminate event of the userform I call Stoptimer so that I don't get the same problem... (you might put it in the workbook beforeclose event) Hope it helps, Ozgur Public RunWhen As Double Public Const cRunIntervalSeconds = 60 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=True End Sub Sub The_Sub() UserForm2.Label475.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label476.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label514.Caption = Format(Now, "dd mmm yy hh:mm") Call StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=False End Sub "Cajeto 63" wrote: Hello Everybody, I have copied a code for a timer in a post and applied it to my workbook to automatically show a userform after a short period of time. My big problem is that when I close the workbook without quitting Excel the timer continue running and re-open my workbook after the preset period to show the userform again. Is there a way to have the timer stopped when closing the workbook? My code bellow: In Module: Option Explicit Public nSaveWB As Date Public Sub SetSaveWBTimer() nSaveWB = Now + TimeSerial(0, 0, 5) ' 5 minutes Application.OnTime nSaveWB, "SaveWB" End Sub Public Sub SaveWB() Alerte.Show End Sub In ThisWorkbook: Private Sub workbook_open() Alerte.Show End Sub In Userform: (called Alerte) Private Sub CommandButton1_Click() Alerte.Hide Call SetSaveWBTimer End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Call SetSaveWBTimer End If End Sub Thanks for your help. -- Regards, Cajeto 63. |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Ozgur,
I pasted the code I have in ThisWorkbook bellow. Thanks again for your help. Private Sub Workbook_Open() Alerte.Show End Sub Private Sub workbook_BeforeClose() Call StopTimer End Sub -- Regards, Cajeto 63. "Ozgur Pars" wrote: Cajeto, I tried it out now and I have no problems with the before_close event. Maybe you can post your code. Just to set the record straight this is not my code(I wish) I found it on the net... Ozgur "Cajeto 63" wrote: Hi Ozgur, Thank you very much for you help. I replaced the code I was using with yours and it partially works but I get another problem. When I run the sub StopTimer by hand from the VB windows it stops showing the userform which is a very good point. But VB does not want me to use the Workbook_BeforeClose event. It gives me a compile error saying:"Procedure declaration does not match description of event or procedure having the same name" and I'm not sure I understand what it means. Could it come from the fact that I already have a Workbook_open event in the workbook? And if so how can I get rid of the problem? -- Regards, Cajeto 63. "Ozgur Pars" wrote: Hi Cajeto63, I use the below code to show the time on my userform. In the terminate event of the userform I call Stoptimer so that I don't get the same problem... (you might put it in the workbook beforeclose event) Hope it helps, Ozgur Public RunWhen As Double Public Const cRunIntervalSeconds = 60 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=True End Sub Sub The_Sub() UserForm2.Label475.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label476.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label514.Caption = Format(Now, "dd mmm yy hh:mm") Call StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=False End Sub "Cajeto 63" wrote: Hello Everybody, I have copied a code for a timer in a post and applied it to my workbook to automatically show a userform after a short period of time. My big problem is that when I close the workbook without quitting Excel the timer continue running and re-open my workbook after the preset period to show the userform again. Is there a way to have the timer stopped when closing the workbook? My code bellow: In Module: Option Explicit Public nSaveWB As Date Public Sub SetSaveWBTimer() nSaveWB = Now + TimeSerial(0, 0, 5) ' 5 minutes Application.OnTime nSaveWB, "SaveWB" End Sub Public Sub SaveWB() Alerte.Show End Sub In ThisWorkbook: Private Sub workbook_open() Alerte.Show End Sub In Userform: (called Alerte) Private Sub CommandButton1_Click() Alerte.Hide Call SetSaveWBTimer End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Call SetSaveWBTimer End If End Sub Thanks for your help. -- Regards, Cajeto 63. |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
When I open the code for ThisWorkbook and then click on Workbook in the
first pulldown then click on BeforeClose in the second pulldown, the interface I get for Excel 2000 is Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub Art Cajeto 63 wrote: Ozgur, I pasted the code I have in ThisWorkbook bellow. Thanks again for your help. Private Sub Workbook_Open() Alerte.Show End Sub Private Sub workbook_BeforeClose() Call StopTimer End Sub -- Regards, Cajeto 63. "Ozgur Pars" wrote: Cajeto, I tried it out now and I have no problems with the before_close event. Maybe you can post your code. Just to set the record straight this is not my code(I wish) I found it on the net... Ozgur "Cajeto 63" wrote: Hi Ozgur, Thank you very much for you help. I replaced the code I was using with yours and it partially works but I get another problem. When I run the sub StopTimer by hand from the VB windows it stops showing the userform which is a very good point. But VB does not want me to use the Workbook_BeforeClose event. It gives me a compile error saying:"Procedure declaration does not match description of event or procedure having the same name" and I'm not sure I understand what it means. Could it come from the fact that I already have a Workbook_open event in the workbook? And if so how can I get rid of the problem? -- Regards, Cajeto 63. "Ozgur Pars" wrote: Hi Cajeto63, I use the below code to show the time on my userform. In the terminate event of the userform I call Stoptimer so that I don't get the same problem... (you might put it in the workbook beforeclose event) Hope it helps, Ozgur Public RunWhen As Double Public Const cRunIntervalSeconds = 60 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=True End Sub Sub The_Sub() UserForm2.Label475.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label476.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label514.Caption = Format(Now, "dd mmm yy hh:mm") Call StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=False End Sub "Cajeto 63" wrote: Hello Everybody, I have copied a code for a timer in a post and applied it to my workbook to automatically show a userform after a short period of time. My big problem is that when I close the workbook without quitting Excel the timer continue running and re-open my workbook after the preset period to show the userform again. Is there a way to have the timer stopped when closing the workbook? My code bellow: In Module: Option Explicit Public nSaveWB As Date Public Sub SetSaveWBTimer() nSaveWB = Now + TimeSerial(0, 0, 5) ' 5 minutes Application.OnTime nSaveWB, "SaveWB" End Sub Public Sub SaveWB() Alerte.Show End Sub In ThisWorkbook: Private Sub workbook_open() Alerte.Show End Sub In Userform: (called Alerte) Private Sub CommandButton1_Click() Alerte.Hide Call SetSaveWBTimer End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Call SetSaveWBTimer End If End Sub Thanks for your help. -- Regards, Cajeto 63. |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
As Art pointed out, you need to use the exact declarations that Excel
expects; you cannot make up you own version. So, it is easier to get Excel to generate them for you, by clicking those 2 drop downs and selecting the various object and events. NickHK "Cajeto 63" wrote in message ... Ozgur, I pasted the code I have in ThisWorkbook bellow. Thanks again for your help. Private Sub Workbook_Open() Alerte.Show End Sub Private Sub workbook_BeforeClose() Call StopTimer End Sub -- Regards, Cajeto 63. "Ozgur Pars" wrote: Cajeto, I tried it out now and I have no problems with the before_close event. Maybe you can post your code. Just to set the record straight this is not my code(I wish) I found it on the net... Ozgur "Cajeto 63" wrote: Hi Ozgur, Thank you very much for you help. I replaced the code I was using with yours and it partially works but I get another problem. When I run the sub StopTimer by hand from the VB windows it stops showing the userform which is a very good point. But VB does not want me to use the Workbook_BeforeClose event. It gives me a compile error saying:"Procedure declaration does not match description of event or procedure having the same name" and I'm not sure I understand what it means. Could it come from the fact that I already have a Workbook_open event in the workbook? And if so how can I get rid of the problem? -- Regards, Cajeto 63. "Ozgur Pars" wrote: Hi Cajeto63, I use the below code to show the time on my userform. In the terminate event of the userform I call Stoptimer so that I don't get the same problem... (you might put it in the workbook beforeclose event) Hope it helps, Ozgur Public RunWhen As Double Public Const cRunIntervalSeconds = 60 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=True End Sub Sub The_Sub() UserForm2.Label475.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label476.Caption = Format(Now, "dd mmm yy hh:mm") UserForm2.Label514.Caption = Format(Now, "dd mmm yy hh:mm") Call StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, procedu=cRunWhat, schedule:=False End Sub "Cajeto 63" wrote: Hello Everybody, I have copied a code for a timer in a post and applied it to my workbook to automatically show a userform after a short period of time. My big problem is that when I close the workbook without quitting Excel the timer continue running and re-open my workbook after the preset period to show the userform again. Is there a way to have the timer stopped when closing the workbook? My code bellow: In Module: Option Explicit Public nSaveWB As Date Public Sub SetSaveWBTimer() nSaveWB = Now + TimeSerial(0, 0, 5) ' 5 minutes Application.OnTime nSaveWB, "SaveWB" End Sub Public Sub SaveWB() Alerte.Show End Sub In ThisWorkbook: Private Sub workbook_open() Alerte.Show End Sub In Userform: (called Alerte) Private Sub CommandButton1_Click() Alerte.Hide Call SetSaveWBTimer End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Call SetSaveWBTimer End If End Sub Thanks for your help. -- Regards, Cajeto 63. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How stop the "started office live" pop-up to stop. it is checked | Excel Discussion (Misc queries) | |||
To Stop or Not to Stop | Excel Discussion (Misc queries) | |||
How do I stop other circles in other cells to stop selecting? | Excel Worksheet Functions | |||
How do I stop other circles in other boxes to stop selecting? | Excel Worksheet Functions | |||
Macro: With Stop it works. Without Stop it doesn't. | Excel Programming |