ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Macro With Timer Event (https://www.excelbanter.com/excel-discussion-misc-queries/59641-macro-timer-event.html)

Saxman

Macro With Timer Event
 
I wish to write a macro using the normal tools which consists of a simple
copy/paste over series of events.

How can I incorporate a timer to delay the copy/paste events for something
like 30 to 60 seconds?

Is there a useful bit of code that I can obtain and paste into the code
that I will be creating or will it require something like a hidden dialogue
box with a timer on it?

Dave O

Macro With Timer Event
 
VBA has a function called Timer, a long-type integer that represents
the current number of seconds since midnight. You can use this in code
to create a delay of a number of seconds like this:

Sub Delay()
Dim Beg As Long

Beg = Timer
Do
Loop Until Timer - Beg = 30

End Sub

This assigns the variable Beg (for Begin) with the current Timer value.
Then a DO loop starts that does nothing but loop until 30 seconds
elapses.

Does that do it for you?


Saxman

Macro With Timer Event
 
On 9 Dec 2005 07:14:45 -0800, Dave O wrote:

VBA has a function called Timer, a long-type integer that represents
the current number of seconds since midnight. You can use this in code
to create a delay of a number of seconds like this:

Sub Delay()
Dim Beg As Long

Beg = Timer
Do
Loop Until Timer - Beg = 30

End Sub

This assigns the variable Beg (for Begin) with the current Timer value.
Then a DO loop starts that does nothing but loop until 30 seconds
elapses.

Does that do it for you?


I'll let you know!

Thanks.

Saxman

Macro With Timer Event
 
On 9 Dec 2005 07:14:45 -0800, Dave O wrote:

VBA has a function called Timer, a long-type integer that represents
the current number of seconds since midnight. You can use this in code
to create a delay of a number of seconds like this:

Sub Delay()
Dim Beg As Long

Beg = Timer
Do
Loop Until Timer - Beg = 30

End Sub

This assigns the variable Beg (for Begin) with the current Timer value.
Then a DO loop starts that does nothing but loop until 30 seconds
elapses.

Does that do it for you?


Below is the code which gives me a compile error on the 2nd Sub Delay().
It is a simple copy from sheet 1 to sheets 2,3,4 and 5. Can you see
anything wrong. Help much appreciated.

Thanks.
.................................................. ....................

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 10/12/2005 by John
'
' Keyboard Shortcut: Ctrl+m
'
Range("A1:A5").Select
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste
End Sub
Sub Delay()
Dim Beg As Long

Beg = Timer
Do
Loop Until Timer - Beg = 30
Sheets("Sheet1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste
End Sub
Sub Delay()
Dim Beg As Long

Beg = Timer
Do
Loop Until Timer - Beg = 30
Sheets("Sheet1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet4").Select
ActiveSheet.Paste
End Sub
Sub Delay()
Dim Beg As Long

Beg = Timer
Do
Loop Until Timer - Beg = 30
Sheets("Sheet1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet5").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
End Sub

Dave O

Macro With Timer Event
 
Hi, Sax-
The reason you got an error is because you have "ambiguous" names for
your routines: you have 3 macros all named "Delay". You need to make
them unique, maybe Delay1, Delay2, and Delay3, or combine them all into
one routine called Delay, which I've done below.

Sub Delay()
Dim Beg As Long

Beg = Timer
Do
Loop Until Timer - Beg = 30
Sheets("Sheet1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet3").Select
ActiveSheet.Paste

Beg = Timer
Do
Loop Until Timer - Beg = 30
Sheets("Sheet1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet4").Select
ActiveSheet.Paste

Beg = Timer
Do
Loop Until Timer - Beg = 30
Sheets("Sheet1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Sheet5").Select
ActiveSheet.Paste
Sheets("Sheet1").Select
End Sub



All times are GMT +1. The time now is 12:18 AM.

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