hi memonkavi this a extract from a website http://www.cpearson.com/excel/OnTime.aspx perhaps this can help you
As parameters, the OnTime method takes a specific data and time at which it should run the procedure and the name of the procedure to run. It is important to remember that you provide the date and time to run the procedure, not an offset from the current time. If you need to cancel an OnTime, you must provide the exact time that the event was schedule to take place. There is no way to tell Excel to cancel the next OnTime event or to cancel all the pending OnTime events. Therefore, you need to store the time at which the procedure is to run in a Public variable and use that variable's value in calls to OnTime. For example, declare Public variables in a standard code module, outside of and before any procedure (Sub or Function) declaration: Public RunWhen As Double Public Const cRunIntervalSeconds = 120 ' two minutes Public Const cRunWhat = "TheSub" ' the name of the procedure to run SectionBreak Starting A Timer To start a repeatable timer, create a procedure named StartTimer as shown below: Sub StartTimer() RunWhen = Now + TimeSerial(0,0,cRunIntervalSeconds) Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _ Schedule:=True End Sub This stores the time to run the procedure in the variable RunWhen, two minutes after the current time. Next, you need to write the procedure that will be called by OnTime. For example, Sub TheSub() '''''''''''''''''''''''' ' Your code here '''''''''''''''''''''''' StartTimer ' Reschedule the procedure End Sub This procedure executes whatever code you include in it, and then at the end calls the StartTimer procedure to schedule another OnTime event. This is how the periodic calls are implemented. Note that if you close the workbook while an OnTime event is pending, Excel will re-open that workbook to execute the procedure and will not close the workbook after the OnTime event is finished. SectionBreak Stopping A Timer At some point, you or your code will need to terminate the OnTime schedule loop. To cancel a pending OnTime event, you must provide the exact time that it is scheduled to run. That is the reason we stored the time in the Public variable RunWhen. You can think of the RunWhen value as a unique key into the OnTime settings. (It is certainly possible to have multiple OnTime events pending. In this, you should store each procedure's scheduled time in a separate variable. Each OnTime event needs its own RunWhen value.) The code below illustrates how to stop a pending OnTime event. Sub StopTimer() On Error Resume Next Application.OnTime EarliestTime:=RunWhen,Procedure:=cRunWhat, _ Schedule:=False End Sub SectionBreak Using Windows Timers In addition to Excel's OnTime method, you can use the Windows Timer functions provided via Window API. Windows Timers are automatically rescheduled and will continue to "pop" until you terminate the timer with the KillTimer API function. With a Windows Timer, you provide the interval, in milliseconds, that the timer will "pop". The timer will "pop" at that interval until terminated with KillTimer. These procedures require Excel 2000 or later, since we use the AddressOf operator. The code will not work in Excel 97 or earlier versions. caution A NOTE OF CAUTION: If the code executed by the timer changes a cell value, and you are presently in edit mode in Excel (e.g., entering data in a cell), Excel will likely crash completely and you will lose all unsaved work. Use Windows timers with caution. To use Windows timers, paste the following code into a standard code module: Public Declare Function SetTimer Lib "user32" ( _ ByVal HWnd As Long, _ ByVal nIDEvent As Long, _ ByVal uElapse As Long, _ ByVal lpTimerFunc As Long) As Long Public Declare Function KillTimer Lib "user32" ( _ ByVal HWnd As Long, _ ByVal nIDEvent As Long) As Long Public TimerID As Long Public TimerSeconds As Single Sub StartTimer() TimerSeconds = 1 ' how often to "pop" the timer. TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc) End Sub Sub EndTimer() On Error Resume Next KillTimer 0&, TimerID End Sub Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _ ByVal nIDEvent As Long, ByVal dwTimer As Long) '''''' ' This procedure is called by Windows. Put your ' code here. '''''' End Sub Run the procedure StartTimer to begin the periodic timer. The variable TimerSeconds indicates how often, in seconds, the timer is to "pop". The SetTimer function takes a value in milliseconds, so the code multiplies TimerSeconds by 1000.When the timer "pops" Windows will call the procedrue TimerProc. You may name this procedure anything you want, but it must be declared with the parameters exactly as shown above. If the parameters differ from what is shown above, Excel will crash. When Windows calls TimerProc, it passes the following parameters: Parameter Meaning HWnd This is the HWnd (Windows Handle) of the Excel application. You can ignore this parameter. uMsg The message ID of a timer message, value of 275. You can ignore this parameter. nIDEvent This value indicates which timer is being "pop" if you have more than one Windows timer in effict. This is the value that was returned from the SetTimer API function. dwTimer The number of milliseconds that Windows has been running. This is the same value that you would get from the GetTickCount Windows API function. To terminate a Windows timer, use the EndTimer procedure shown above, which calls KillTimer to actually terminate the timer. ShortFadeBar On 20/01/2010, memonkavi <memonk...@gmail.com> wrote: > sir > ex > code > do > calculate > loop until ----------------------- > here i want set a time limit > pls help me > -- Have A Nice Time & Enjoy Life Regards: CMA Ankur Pandey (Someone Different) I'm not the best but i'm not like the rest~~
-- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Excel and VBA Tutorials(Video and Text), Free add-ins downloads at http://www.excelitems.com 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com If you find any spam message in the group, please send an email to: Ayush Jain @ jainayus...@gmail.com <><><><><><><><><><><><><><><><><><><><><><> HELP US GROW !! We reach over 6,700 subscribers worldwide and receive many nice notes about the learning and support from the group.Let friends and co-workers know they can subscribe to group at http://groups.google.com/group/excel-macros/subscribe