Notifications
Clear all

como executar uma macro a cada 5 segundos?

7 Posts
2 Usuários
0 Reactions
1,882 Visualizações
(@volneig)
Posts: 0
New Member
Topic starter
 

Estou tentando fazer com que uma determinada macro seja executada a cada 5 segundos

como fazer isso ?

o código VBA que estou usando é este:

Sub Auto_Open()
Call TesteOnTime
End Sub
Sub ExecutaOnTime()
'
' macro1 Macro ( se adicionada a um botão e executada, ela efetua o procedimento de atualização da minha tabala dinamica)
'
'
ActiveWorkbook.RefreshAll
End Sub

Public Sub TesteOnTime()
Call Application.OnTime(Now + TimeValue("00:00:05"), "ExecutaOnTime")
End Sub

já consegui fazer com que o arquivo depois de aberto execute a macro em 5 segundos, mas preciso fazer com que ela continue esse teste.

Agradeço a ajuda.

 
Postado : 26/10/2015 8:02 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Não entendi muito bem, após abrir seu arquivo a rotina para ?

Private Sub Workbook_Open()
'Insira dentro de um módulo EstaPasta_de_trabalho
    executarAcadaSegundo
End Sub


Sub executarAcadaSegundo()
'Insira dentro de um módulo

    'Adiocione o código ...
    
    Application.OnTime Now + TimeValue("00:00:05"), "executarAcadaSegundo"
End Sub

Att

 
Postado : 26/10/2015 8:17 am
(@volneig)
Posts: 0
New Member
Topic starter
 

Bom dia

eu tenho uma macro que quando executada ela efetua uma rotina de atualização de uma planilha que tenho.

Mas quero que essa macro seja executado automaticamente ao abrir o arquivo do Excel .. mas ela deve continuar sendo executada automaticamente a cada 5 segundos .

como mencionei no inicio da pergunta .. eu ja fiz com que ela execute essa atualização assim que eu abrir o arquivo.. mas quero fazer com que ela continue executando apos 5 segundos.

 
Postado : 26/10/2015 8:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Essa parte deveria fazer isso:

Now + TimeValue("00:00:05")

Att

 
Postado : 26/10/2015 8:25 am
(@volneig)
Posts: 0
New Member
Topic starter
 

Olá ... bom estou com o seguinte código VBA:

' comando para executar logo ao abri o documento
Sub Auto_Open()
Call TesteOnTime
End Sub
Sub ExecutaOnTime()
'
' macro1 - macro que efetua a rotina de atualização
'
ActiveWorkbook.RefreshAll
End Sub

' comando que estou usando para executar a macro em 5 segundos

Public Sub TesteOnTime()
Call Application.OnTime(Now + TimeValue("00:00:05"), "ExecutaOnTime")
End Sub

'porem ela executa a macro só uma vez, ou seja, ao abrir o documento ela executa depois de 5 segundos.
'quero que continue executando a cada 5 segundos, e é isso que nao estou conseguindo fazer

 
Postado : 26/10/2015 8:35 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Use uma MsgBox para verificar a execução, nos meus testes eu não tive problemas!!!

Private Sub Workbook_Open()
'Insira dentro de um módulo EstaPasta_de_trabalho
    executarAcadaSegundo
End Sub


Sub executarAcadaSegundo()
'Insira dentro de um módulo

    'Adiocione o código ...
    
    Application.OnTime Now + TimeValue("00:00:05"), "executarAcadaSegundo"
 MsgBox "Eu executei..."
End Sub

Att

 
Postado : 26/10/2015 8:39 am
(@volneig)
Posts: 0
New Member
Topic starter
 

Ok Deu certo Amigo .. Testei em um novo Documento e funcionou,

Obrigado pela ajuda .

 
Postado : 26/10/2015 8:52 am