Notifications
Clear all

Macro/Script para Ativar Teclas

6 Posts
2 Usuários
0 Reactions
1,832 Visualizações
(@pedro12345)
Posts: 48
Eminent Member
Topic starter
 

Olá caros colegas,

necessito da vossa ajuda.

Estou a trabalhar com um software, em que por vezes é necessário confirmar várias vezes, algumas mensagens que aparecem no ecrã.
Para ultrapassar isso, necessito de clicar na Tecla F5 e seguida da tecla ENTER e assim repetidamente, até concluir todos os processos no software.

Gostava da vossa ajuda para criar uma macro, que após clicar botão para a compilar, teria de aguardar uns 5 segundos, para eu ir seleccionar/ativar a janela do software e após correr o codigo no software.
A Macro consistiria em loop a clicar automaticamente na Tecla F5 + Enter repetidamente até uma tecla definir a paragem do mesmo (exemplo tecla ESC ou SPACE).

Creio que a macro se assemelha a um script a desenvolver.

Poderiam indiciar-me alguma informação sobre este desenvolvimento e por onde começar?

Obrigado!

Cumprimentos a todos! :) :)

 
Postado : 13/07/2018 10:14 am
(@klarc28)
Posts: 971
Prominent Member
 
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
    AppActivate "Exploring", True
    SendKeys "% {Down 4}{Enter}", True
    Sleep 1000
    AppActivate "Form1"
    Call Command2_Click
End Sub

Private Sub Command2_Click()
    AppActivate "Exploring", True
    SendKeys "{F5}", True
End Sub
 
Postado : 13/07/2018 10:42 am
(@pedro12345)
Posts: 48
Eminent Member
Topic starter
 

Olá klarc28,

Antes de mais obrigado pela sua rápida resposta!

Contudo, continuo com dúvidas, pois creio que o código que me passou contém 2 command buttons, quando na verdade só pretendo carregar num único botão para correr a macro até clicar noutra tecla (tecla ESC ou Espaço).

O código pode até mesmo ser incorporado numa macro em excel.

Anexo envio o ficheiro, onde para além da macro, já testei criar um form..

O código que tenho atualmente é este, mas que não tem forma de parar e tenho dúvidas se irá resultar:

'Private Sub CommandButton1_Click()
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


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

Sub macro1()


'AppActivate "Exploring", True
    SendKeys "% {Down 4}{Enter}", True
    Sleep 1000
    'AppActivate "Form1"
    Call macro2

End Sub
Sub macro2()


'    AppActivate "Exploring", True
    SendKeys "{F5}", True
    Call Application.OnTime(Now + TimeValue("00:00:01"), "Macro1")
    
End Sub

Acham que podem ajudar?

 
Postado : 13/07/2018 4:34 pm
(@pedro12345)
Posts: 48
Eminent Member
Topic starter
 

Olá a todos,

Neste momento tenho este código desenvolvido, onde em vez de ter uma tecla pré-definida para parar o ciclo do script, tenho configurado para o utilizador definir quantas vezes o deseja compilar...
Estou a ter problemas com a linha de código
AppActivate "Exploring", True
onde aparece o erro: "Invalid Procedure call or argument"
Não é possível configurar para compilar a marcação da teclas na janela ativa do meu software?

Alguém pode validar o código abaixo desenvolvido?

Option Explicit

Sub teclas()

Dim ciclos, n As Integer
n = 0

ciclos = InputBox("Quantas vezes deseja correr o ciclo do Script?", "STOP!")

Application.Wait Now + TimeValue("0:00:03")

Start:
AppActivate "Exploring", True

Application.SendKeys "{F5}", True
SendKeys "{F5}", True

Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "~", True

Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "~", True

Application.Wait Now + TimeValue("0:00:02")

n = n + 1

If n < ciclos Then
GoTo Start
Else
Exit Sub
End If

End Sub

Obrigado a todos! ;)

 
Postado : 15/07/2018 9:29 am
(@klarc28)
Posts: 971
Prominent Member
 
Option Explicit

Sub teclas()

Dim ciclos, n As Integer
n = 0

ciclos = InputBox("Quantas vezes deseja correr o ciclo do Script?", "STOP!")

Application.Wait Now + TimeValue("0:00:03")

Start:
AppActivate "Exploring", True



n = n + 1

If n < ciclos Then
GoTo Start
Else
Exit Sub
End If

End Sub

sub Exploring (  )

Application.SendKeys "{F5}", True
SendKeys "{F5}", True

Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "~", True

Application.Wait Now + TimeValue("0:00:01")
Application.SendKeys "~", True

Application.Wait Now + TimeValue("0:00:02")
end sub
 
Postado : 18/07/2018 5:05 am
(@pedro12345)
Posts: 48
Eminent Member
Topic starter
 

Ola,

continua a dar erro na linha AppActivate "Exploring", True

:?

 
Postado : 20/07/2018 8:29 am