ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Loop with Time (https://www.excelbanter.com/excel-programming/366062-loop-time.html)

portucale

Loop with Time
 

Hi,
New to this programming hence I am looking for some help.
I need to write a macro/vba in Excel which will open diferent workbooks
according a specific time, i.e. Book 1 (open) then open Book 2 after 2
minutes, Book three after 4 minutes of the first (2 minutes of teh
second).

Your help will be much appreciated.

Thanks,:)


--
portucale
------------------------------------------------------------------------
portucale's Profile: http://www.excelforum.com/member.php...o&userid=35979
View this thread: http://www.excelforum.com/showthread...hreadid=557646


excelent

Loop with Time
 
Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls


Antonio

Loop with Time
 
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I wonder if you
have run into the following difficulty:

If you try to close the workbook that has the timer running from another
workbook, programatically, the Before_Close event will run the Stoptimer but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls


Bob Phillips

Loop with Time
 
You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I wonder if you
have run into the following difficulty:

If you try to close the workbook that has the timer running from another
workbook, programatically, the Before_Close event will run the Stoptimer

but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls




excelent

Loop with Time
 
nope cant say i have, i made this sheet for another, he newer told me of any
problems. Anyway i use this code to stop timer

Private Sub Workbook_BeforeClose(Cancel As Boolean)
StopTimer
End Sub



"Antonio" skrev:

Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I wonder if you
have run into the following difficulty:

If you try to close the workbook that has the timer running from another
workbook, programatically, the Before_Close event will run the Stoptimer but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls


Antonio

Loop with Time
 
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work. It is a bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure from a different
workbook, if you rely on the Before_Close event it does not work. It never
works.

You have to call the kill timer sub independently and it does not always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I wonder if you
have run into the following difficulty:

If you try to close the workbook that has the timer running from another
workbook, programatically, the Before_Close event will run the Stoptimer

but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls





Bob Phillips

Loop with Time
 
As long as you call it with exactly the same scheduled time as when you set
it, it works fine.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work. It is a

bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure from a

different
workbook, if you rely on the Before_Close event it does not work. It never
works.

You have to call the kill timer sub independently and it does not always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I wonder if

you
have run into the following difficulty:

If you try to close the workbook that has the timer running from

another
workbook, programatically, the Before_Close event will run the

Stoptimer
but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls







Antonio

Loop with Time
 
I wish I were wrong, I really wish.

Try this:

tta.xls Module1

Sub main()

Workbooks("ttb.xls").Close SaveChanges:=False

End Sub


ttb.xls ThisWorkbook

Public Sub Workbook_Open()

timer

End Sub

Public Sub Workbook_BeforeClose(cancel As Boolean)

cancel_timer


End Sub

ttb.xls Module1

Public rt As Double

Public Sub timer()

rt = Now + TimeValue("00:00:02")

Application.OnTime rt, "timer"

End Sub

Public Sub cancel_timer()


Application.OnTime rt, "timer", , False


End Sub

Do this now:

Open ttb.xls
Open tta.xls
Assing sub main() in tta.xls to a button, click on the button, it does close
ttb.xls but....ttb.xls reopens. This is not supposed to happen and it creates
all sorts of problems. If you know that I am wrong please correct me, you
would help me tremendously.

There is a workaround, but it is not reliable.






"Bob Phillips" wrote:

As long as you call it with exactly the same scheduled time as when you set
it, it works fine.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work. It is a

bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure from a

different
workbook, if you rely on the Before_Close event it does not work. It never
works.

You have to call the kill timer sub independently and it does not always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I wonder if

you
have run into the following difficulty:

If you try to close the workbook that has the timer running from

another
workbook, programatically, the Before_Close event will run the

Stoptimer
but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls








Bob Phillips

Loop with Time
 
Well I have just tried it and it works fine for me. File B does not re-open
at all.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
I wish I were wrong, I really wish.

Try this:

tta.xls Module1

Sub main()

Workbooks("ttb.xls").Close SaveChanges:=False

End Sub


ttb.xls ThisWorkbook

Public Sub Workbook_Open()

timer

End Sub

Public Sub Workbook_BeforeClose(cancel As Boolean)

cancel_timer


End Sub

ttb.xls Module1

Public rt As Double

Public Sub timer()

rt = Now + TimeValue("00:00:02")

Application.OnTime rt, "timer"

End Sub

Public Sub cancel_timer()


Application.OnTime rt, "timer", , False


End Sub

Do this now:

Open ttb.xls
Open tta.xls
Assing sub main() in tta.xls to a button, click on the button, it does

close
ttb.xls but....ttb.xls reopens. This is not supposed to happen and it

creates
all sorts of problems. If you know that I am wrong please correct me, you
would help me tremendously.

There is a workaround, but it is not reliable.






"Bob Phillips" wrote:

As long as you call it with exactly the same scheduled time as when you

set
it, it works fine.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work. It is a

bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure from a

different
workbook, if you rely on the Before_Close event it does not work. It

never
works.

You have to call the kill timer sub independently and it does not

always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I

wonder if
you
have run into the following difficulty:

If you try to close the workbook that has the timer running from

another
workbook, programatically, the Before_Close event will run the

Stoptimer
but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls










Antonio

Loop with Time
 
It does not reopen if you run the sub in tta.xls manually.

If you run it programatically it does reopen.

I have tried it on several computers Office 2003 and 07, all the same.

Please let me know. Thanks.

"Bob Phillips" wrote:

Well I have just tried it and it works fine for me. File B does not re-open
at all.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
I wish I were wrong, I really wish.

Try this:

tta.xls Module1

Sub main()

Workbooks("ttb.xls").Close SaveChanges:=False

End Sub


ttb.xls ThisWorkbook

Public Sub Workbook_Open()

timer

End Sub

Public Sub Workbook_BeforeClose(cancel As Boolean)

cancel_timer


End Sub

ttb.xls Module1

Public rt As Double

Public Sub timer()

rt = Now + TimeValue("00:00:02")

Application.OnTime rt, "timer"

End Sub

Public Sub cancel_timer()


Application.OnTime rt, "timer", , False


End Sub

Do this now:

Open ttb.xls
Open tta.xls
Assing sub main() in tta.xls to a button, click on the button, it does

close
ttb.xls but....ttb.xls reopens. This is not supposed to happen and it

creates
all sorts of problems. If you know that I am wrong please correct me, you
would help me tremendously.

There is a workaround, but it is not reliable.






"Bob Phillips" wrote:

As long as you call it with exactly the same scheduled time as when you

set
it, it works fine.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work. It is a
bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure from a
different
workbook, if you rely on the Before_Close event it does not work. It

never
works.

You have to call the kill timer sub independently and it does not

always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I

wonder if
you
have run into the following difficulty:

If you try to close the workbook that has the timer running from
another
workbook, programatically, the Before_Close event will run the
Stoptimer
but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls











Bob Phillips

Loop with Time
 
Sorry, I do get the problem. I added some debug code previously that
overrode it. Don't have a solution as yet, but I will post back if I think
of anything.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
It does not reopen if you run the sub in tta.xls manually.

If you run it programatically it does reopen.

I have tried it on several computers Office 2003 and 07, all the same.

Please let me know. Thanks.

"Bob Phillips" wrote:

Well I have just tried it and it works fine for me. File B does not

re-open
at all.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
I wish I were wrong, I really wish.

Try this:

tta.xls Module1

Sub main()

Workbooks("ttb.xls").Close SaveChanges:=False

End Sub


ttb.xls ThisWorkbook

Public Sub Workbook_Open()

timer

End Sub

Public Sub Workbook_BeforeClose(cancel As Boolean)

cancel_timer


End Sub

ttb.xls Module1

Public rt As Double

Public Sub timer()

rt = Now + TimeValue("00:00:02")

Application.OnTime rt, "timer"

End Sub

Public Sub cancel_timer()


Application.OnTime rt, "timer", , False


End Sub

Do this now:

Open ttb.xls
Open tta.xls
Assing sub main() in tta.xls to a button, click on the button, it does

close
ttb.xls but....ttb.xls reopens. This is not supposed to happen and it

creates
all sorts of problems. If you know that I am wrong please correct me,

you
would help me tremendously.

There is a workaround, but it is not reliable.






"Bob Phillips" wrote:

As long as you call it with exactly the same scheduled time as when

you
set
it, it works fine.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work. It

is a
bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure from a
different
workbook, if you rely on the Before_Close event it does not work.

It
never
works.

You have to call the kill timer sub independently and it does not

always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing

direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I

wonder if
you
have run into the following difficulty:

If you try to close the workbook that has the timer running

from
another
workbook, programatically, the Before_Close event will run the
Stoptimer
but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls













Antonio

Loop with Time
 
Hi Bob,

I appreciate your quality contribution to this forum, I learn a lot from
your comments. The issue is now in good hands.

My workaround is in tta.xls:

Application.Run "cancel_timer"
Workbooks("ttb.xls").Close SaveChanges:=False

The problem is that it does not work reliably. If you let the workbook (not
the simple test one, but a real big workbook) run for a while, when it comes
to be closed it throws an error. On Error Goto Next it is not a solution.
Perhaps it happens more on data intensive applications like mine.

Regards,

Antonio







"Bob Phillips" wrote:

Sorry, I do get the problem. I added some debug code previously that
overrode it. Don't have a solution as yet, but I will post back if I think
of anything.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
It does not reopen if you run the sub in tta.xls manually.

If you run it programatically it does reopen.

I have tried it on several computers Office 2003 and 07, all the same.

Please let me know. Thanks.

"Bob Phillips" wrote:

Well I have just tried it and it works fine for me. File B does not

re-open
at all.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
I wish I were wrong, I really wish.

Try this:

tta.xls Module1

Sub main()

Workbooks("ttb.xls").Close SaveChanges:=False

End Sub


ttb.xls ThisWorkbook

Public Sub Workbook_Open()

timer

End Sub

Public Sub Workbook_BeforeClose(cancel As Boolean)

cancel_timer


End Sub

ttb.xls Module1

Public rt As Double

Public Sub timer()

rt = Now + TimeValue("00:00:02")

Application.OnTime rt, "timer"

End Sub

Public Sub cancel_timer()


Application.OnTime rt, "timer", , False


End Sub

Do this now:

Open ttb.xls
Open tta.xls
Assing sub main() in tta.xls to a button, click on the button, it does
close
ttb.xls but....ttb.xls reopens. This is not supposed to happen and it
creates
all sorts of problems. If you know that I am wrong please correct me,

you
would help me tremendously.

There is a workaround, but it is not reliable.






"Bob Phillips" wrote:

As long as you call it with exactly the same scheduled time as when

you
set
it, it works fine.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work. It

is a
bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure from a
different
workbook, if you rely on the Before_Close event it does not work.

It
never
works.

You have to call the kill timer sub independently and it does not
always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing

direct)

"Antonio" wrote in message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command I
wonder if
you
have run into the following difficulty:

If you try to close the workbook that has the timer running

from
another
workbook, programatically, the Before_Close event will run the
Stoptimer
but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls














Bob Phillips

Loop with Time
 
Antonio,

I tried something like that, but the way that you have it I cannot see that
working at all. cancel_timer is in tlb not tla, so you need to qualify with
the workbook and that is where it failed for me.

I will continue trying so keep checking back (upto the end of the week).

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
Hi Bob,

I appreciate your quality contribution to this forum, I learn a lot from
your comments. The issue is now in good hands.

My workaround is in tta.xls:

Application.Run "cancel_timer"
Workbooks("ttb.xls").Close SaveChanges:=False

The problem is that it does not work reliably. If you let the workbook

(not
the simple test one, but a real big workbook) run for a while, when it

comes
to be closed it throws an error. On Error Goto Next it is not a solution.
Perhaps it happens more on data intensive applications like mine.

Regards,

Antonio







"Bob Phillips" wrote:

Sorry, I do get the problem. I added some debug code previously that
overrode it. Don't have a solution as yet, but I will post back if I

think
of anything.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
It does not reopen if you run the sub in tta.xls manually.

If you run it programatically it does reopen.

I have tried it on several computers Office 2003 and 07, all the same.

Please let me know. Thanks.

"Bob Phillips" wrote:

Well I have just tried it and it works fine for me. File B does not

re-open
at all.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

"Antonio" wrote in message
...
I wish I were wrong, I really wish.

Try this:

tta.xls Module1

Sub main()

Workbooks("ttb.xls").Close SaveChanges:=False

End Sub


ttb.xls ThisWorkbook

Public Sub Workbook_Open()

timer

End Sub

Public Sub Workbook_BeforeClose(cancel As Boolean)

cancel_timer


End Sub

ttb.xls Module1

Public rt As Double

Public Sub timer()

rt = Now + TimeValue("00:00:02")

Application.OnTime rt, "timer"

End Sub

Public Sub cancel_timer()


Application.OnTime rt, "timer", , False


End Sub

Do this now:

Open ttb.xls
Open tta.xls
Assing sub main() in tta.xls to a button, click on the button, it

does
close
ttb.xls but....ttb.xls reopens. This is not supposed to happen and

it
creates
all sorts of problems. If you know that I am wrong please correct

me,
you
would help me tremendously.

There is a workaround, but it is not reliable.






"Bob Phillips" wrote:

As long as you call it with exactly the same scheduled time as

when
you
set
it, it works fine.

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing

direct)

"Antonio" wrote in message
...
Hi Bob,

I have done intensive work on this issue.

I know how it is suposed to be done but it just does not work.

It
is a
bug,
an annoying one.

Again, try closing a workbook with a live On Time procedure

from a
different
workbook, if you rely on the Before_Close event it does not

work.
It
never
works.

You have to call the kill timer sub independently and it does

not
always
work.

"Bob Phillips" wrote:

You should kill the timer. Chip Pearson explains it all on
http://www.cpearson.com/excel/ontime.htm

--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing

direct)

"Antonio" wrote in

message
...
Hi Excelent,

I have been looking at your code.

Since you have worked with the Application On Time command

I
wonder if
you
have run into the following difficulty:

If you try to close the workbook that has the timer

running
from
another
workbook, programatically, the Before_Close event will run

the
Stoptimer
but
it won't kill it. It will refire again.

This has caused me ample problems.

Try it
"excelent" wrote:

Maby u can use this as inspiration

http://pmexcelent.dk/FileMaster.xls

















All times are GMT +1. The time now is 05:53 PM.

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