Bom dia,
Preciso criar um delay de 35 segundos no Script de VB que criei no SAP para extrair informações em uma planilha, o código do Script irá ser executado dentro do módulo do excel. Na hora que o SAP muda a tela para salvar em arquivo do excel aparece o erro: "The control could not be found by id". Acredito que o erro esteja ocorrendo porque a rotina é executada antes da tela do SAP mudar. Já vasculhei a net e tentei tudo quanto é código de delays: loops, application.wait, WScript.Sleep, e nada, só dão erro.
Eis o código do VBS:
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.Children(0)
End If
If Not IsObject(session) Then
Set session = connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "ZV52"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/rad[2]").select
session.findById("wnd[0]/usr/ctxt[0]").text = "720"
session.findById("wnd[0]/usr/ctxt[1]").text = "0002"
session.findById("wnd[0]/usr/txt[10]").text = ""
session.findById("wnd[0]/usr/txt[10]").setFocus
session.findById("wnd[0]/usr/txt[10]").caretPosition = 0
session.findById("wnd[0]").sendVKey 8
'PRECISO DE UM DELAY DE 35 SEGUNDOS AQUI
session.findById("wnd[0]").maximize
session.findById("wnd[0]/mbar/menu[0]/menu[5]/menu[2]/menu[2]").select
session.findById("wnd[1]/usr/sub/1/rad[1,0]").select
session.findById("wnd[1]/usr/sub/1/rad[1,0]").setFocus
session.findById("wnd[1]").sendVKey 0
session.findById("wnd[1]/usr/ctxt[0]").text = "F:CDF6- Inventário2 - RELATÓRIOS2014BUD"
session.findById("wnd[1]/usr/ctxt[1]").text = "teste2.xlsb"
session.findById("wnd[1]/usr/ctxt[1]").caretPosition = 8
session.findById("wnd[1]/tbar[0]/btn[11]").press
Conte Comigo!
Profissão: Programador VBA Pleno
"Para bom entendedor, meia palavra basta"
Postado : 09/12/2014 5:40 am