ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Stop vbTimer (https://www.excelbanter.com/excel-programming/376098-stop-vbtimer.html)

Cajeto 63

Stop vbTimer
 
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.




Ozgur Pars[_2_]

Stop vbTimer
 
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.




Cajeto 63

Stop vbTimer
 
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.




Ozgur Pars[_2_]

Stop vbTimer
 
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.




Cajeto 63

Stop vbTimer
 
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.




Art H

Stop vbTimer
 
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.





NickHK

Stop vbTimer
 
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.






Cajeto 63

Stop vbTimer
 
Thank you all for your helpfull help, it works perfectly now.


--


Regards, Cajeto 63.





"Art H" wrote:

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.







All times are GMT +1. The time now is 04:19 PM.

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