switching window stops running macros
hi all !
i have a cyclic vbe program that bob gave to me and it works fine.. but i need to open it in more than one windows simoultaneously, and when i switch to window 2, the timer in the window 1 stops !! maybe someone can suggest me how to do! this is the code: TIMER Add this to a standard code module Option Explicit Public nTime As Double Public Sub StartTimer() On Error Resume Next Application.OnTime nTime, "RunTimer", , False On Error GoTo 0 ActiveSheet.Range("A1").Value = 0 RunTimer End Sub Public Sub StopTimer() Application.OnTime nTime, "RunTimer", , False End Sub Public Sub RunTimer() With ActiveSheet.Range("A1") .Value = .Value + TimeSerial(0, 0, 1) .NumberFormat = "hh:mm:ss" End With nTime = Now + TimeSerial(0, 0, 1) Application.OnTime nTime, "RunTimer" End Sub |
switching window stops running macros
I'm guessing it's seeing a different activesheet when you go to a different
window. You're going to have to specify the workbook and sheet you want, I think. Try this Option Explicit Public nTime As Double Public Sub StartTimer() Dim aWB As Workbook Dim aWS As Worksheet Set aWB = ThisWorkbook Set aWS = aWB.Worksheets("Sheet1") 'change sheet name as needed On Error Resume Next Application.OnTime nTime, "RunTimer", , False On Error GoTo 0 aWS.Range("A1").Value = 0 RunTimer End Sub Public Sub StopTimer() Application.OnTime nTime, "RunTimer", , False End Sub Public Sub RunTimer() Dim aWB As Workbook Dim aWS As Worksheet Set aWB = ThisWorkbook Set aWS = aWB.Worksheets("Sheet1") 'change sheet name as needed With aWS.Range("A1") .Value = .Value + TimeSerial(0, 0, 1) .NumberFormat = "hh:mm:ss" End With nTime = Now + TimeSerial(0, 0, 1) Application.OnTime nTime, "RunTimer" End Sub -- HTH, Barb Reinhardt "N+" wrote: hi all ! i have a cyclic vbe program that bob gave to me and it works fine.. but i need to open it in more than one windows simoultaneously, and when i switch to window 2, the timer in the window 1 stops !! maybe someone can suggest me how to do! this is the code: TIMER Add this to a standard code module Option Explicit Public nTime As Double Public Sub StartTimer() On Error Resume Next Application.OnTime nTime, "RunTimer", , False On Error GoTo 0 ActiveSheet.Range("A1").Value = 0 RunTimer End Sub Public Sub StopTimer() Application.OnTime nTime, "RunTimer", , False End Sub Public Sub RunTimer() With ActiveSheet.Range("A1") .Value = .Value + TimeSerial(0, 0, 1) .NumberFormat = "hh:mm:ss" End With nTime = Now + TimeSerial(0, 0, 1) Application.OnTime nTime, "RunTimer" End Sub |
switching window stops running macros
ty barb i will try as soon as possible and tell u how it works !
"Barb Reinhardt" wrote: I'm guessing it's seeing a different activesheet when you go to a different window. You're going to have to specify the workbook and sheet you want, I think. Try this Option Explicit Public nTime As Double Public Sub StartTimer() Dim aWB As Workbook Dim aWS As Worksheet Set aWB = ThisWorkbook Set aWS = aWB.Worksheets("Sheet1") 'change sheet name as needed On Error Resume Next Application.OnTime nTime, "RunTimer", , False On Error GoTo 0 aWS.Range("A1").Value = 0 RunTimer End Sub Public Sub StopTimer() Application.OnTime nTime, "RunTimer", , False End Sub Public Sub RunTimer() Dim aWB As Workbook Dim aWS As Worksheet Set aWB = ThisWorkbook Set aWS = aWB.Worksheets("Sheet1") 'change sheet name as needed With aWS.Range("A1") .Value = .Value + TimeSerial(0, 0, 1) .NumberFormat = "hh:mm:ss" End With nTime = Now + TimeSerial(0, 0, 1) Application.OnTime nTime, "RunTimer" End Sub -- HTH, Barb Reinhardt "N+" wrote: hi all ! i have a cyclic vbe program that bob gave to me and it works fine.. but i need to open it in more than one windows simoultaneously, and when i switch to window 2, the timer in the window 1 stops !! maybe someone can suggest me how to do! this is the code: TIMER Add this to a standard code module Option Explicit Public nTime As Double Public Sub StartTimer() On Error Resume Next Application.OnTime nTime, "RunTimer", , False On Error GoTo 0 ActiveSheet.Range("A1").Value = 0 RunTimer End Sub Public Sub StopTimer() Application.OnTime nTime, "RunTimer", , False End Sub Public Sub RunTimer() With ActiveSheet.Range("A1") .Value = .Value + TimeSerial(0, 0, 1) .NumberFormat = "hh:mm:ss" End With nTime = Now + TimeSerial(0, 0, 1) Application.OnTime nTime, "RunTimer" End Sub |
switching window stops running macros
hi barb it is working ok ty !!
but if i had to insert my macro , where should i put "her" for avoiding it to run multiply in each code cycle, when i open many times the same window ? ty! "N+" wrote: hi all ! i have a cyclic vbe program that bob gave to me and it works fine.. but i need to open it in more than one windows simoultaneously, and when i switch to window 2, the timer in the window 1 stops !! maybe someone can suggest me how to do! this is the code: TIMER Add this to a standard code module Option Explicit Public nTime As Double Public Sub StartTimer() On Error Resume Next Application.OnTime nTime, "RunTimer", , False On Error GoTo 0 ActiveSheet.Range("A1").Value = 0 RunTimer End Sub Public Sub StopTimer() Application.OnTime nTime, "RunTimer", , False End Sub Public Sub RunTimer() With ActiveSheet.Range("A1") .Value = .Value + TimeSerial(0, 0, 1) .NumberFormat = "hh:mm:ss" End With nTime = Now + TimeSerial(0, 0, 1) Application.OnTime nTime, "RunTimer" End Sub |
switching window stops running macros
done..modified all "range" with aws.range !! ty
but i cant avoid calculatin 3 times a ccle with something else than application.calculate ! "N+" wrote: hi barb it is working ok ty !! but if i had to insert my macro , where should i put "her" for avoiding it to run multiply in each code cycle, when i open many times the same window ? ty! "N+" wrote: hi all ! i have a cyclic vbe program that bob gave to me and it works fine.. but i need to open it in more than one windows simoultaneously, and when i switch to window 2, the timer in the window 1 stops !! maybe someone can suggest me how to do! this is the code: TIMER Add this to a standard code module Option Explicit Public nTime As Double Public Sub StartTimer() On Error Resume Next Application.OnTime nTime, "RunTimer", , False On Error GoTo 0 ActiveSheet.Range("A1").Value = 0 RunTimer End Sub Public Sub StopTimer() Application.OnTime nTime, "RunTimer", , False End Sub Public Sub RunTimer() With ActiveSheet.Range("A1") .Value = .Value + TimeSerial(0, 0, 1) .NumberFormat = "hh:mm:ss" End With nTime = Now + TimeSerial(0, 0, 1) Application.OnTime nTime, "RunTimer" End Sub |
All times are GMT +1. The time now is 06:48 AM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com