ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   switching window stops running macros (https://www.excelbanter.com/excel-programming/407152-switching-window-stops-running-macros.html)

N+

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

Barb Reinhardt

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


N+

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


N+

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


N+

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