Estou vinculando excel com o sistema SAP, e inserindo uma rotina em um botão na planilha que uso.
A rotina é a seguinte:
Acessa o SAP;
Entra na transação X;
Configura o layout e inclui todas as informações que preciso no relatório;
Exporta pra excel e salva na area de trabalho com o nome y;
Até ai tudo bem, entretando inclui a rotina de capturar os dados desta planilha exportada do SAP para a minha base; Consigo fazer toda essa rotina, porém quero que a planilha gerada pelo SAP feche após os dados serem capturados para minha base.
Na rotina já existe isso, porém pelo que entendi, quando a planilha é exportada pelo SAP ela fica aberta e na rotina que copiei de um projeto, ela obriga a "reabri-lo", e com isso acontece a divergência de informações.
Segue o código
Desde já agradeço a colaboração de todos
Código: Selecionar todos
Sub gerar_relatorio()
Set SapGuiAuto = GetObject("SAPGUI")
Set SAPApp = SapGuiAuto.GetScriptingEngine
Set SAPCon = SAPApp.Children(0)
Set session = SAPCon.Children(0)
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nzsdr004"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtS_VKORG-LOW").Text = "YGA1"
session.findById("wnd[0]/usr/ctxtS_FKDAT-LOW").Text = "20.05.2018"
session.findById("wnd[0]/usr/ctxtS_FKDAT-HIGH").Text = "31.12.2018"
session.findById("wnd[0]/usr/ctxtS_WERKS-LOW").Text = "0101"
session.findById("wnd[0]/usr/ctxtS_WERKS-LOW").SetFocus
session.findById("wnd[0]/usr/ctxtS_WERKS-LOW").caretPosition = 4
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").setCurrentCell -1, "ESCRITORIO_VENDAS"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectColumn "ESCRITORIO_VENDAS"
session.findById("wnd[0]/tbar[1]/btn[29]").press
session.findById("wnd[1]/usr/ssub%_SUBSCREEN_FREESEL:SAPLSSEL:1105/btn%_%%DYN001_%_APP_%-VALU_PUSH").press
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpNOSV").Select
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpNOSV/ssubSCREEN_HEADER:SAPLALDB:3030/tblSAPLALDBSINGLE_E/ctxtRSCSEL_255-SLOW_E[1,0]").Text = "GC-CSP São Paulo CN"
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpNOSV/ssubSCREEN_HEADER:SAPLALDB:3030/tblSAPLALDBSINGLE_E/ctxtRSCSEL_255-SLOW_E[1,0]").caretPosition = 20
session.findById("wnd[2]/tbar[0]/btn[8]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").setCurrentCell -1, "TIPO_OV"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectColumn "TIPO_OV"
session.findById("wnd[0]/tbar[1]/btn[29]").press
session.findById("wnd[1]/usr/ssub%_SUBSCREEN_FREESEL:SAPLSSEL:1105/ctxt%%DYN002-LOW").SetFocus
session.findById("wnd[1]/usr/ssub%_SUBSCREEN_FREESEL:SAPLSSEL:1105/ctxt%%DYN002-LOW").caretPosition = 0
session.findById("wnd[1]/usr/ssub%_SUBSCREEN_FREESEL:SAPLSSEL:1105/btn%_%%DYN002_%_APP_%-VALU_PUSH").press
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpNOSV").Select
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpNOSV/ssubSCREEN_HEADER:SAPLALDB:3030/tblSAPLALDBSINGLE_E/ctxtRSCSEL_255-SLOW_E[1,0]").Text = "YBVC"
session.findById("wnd[2]/usr/tabsTAB_STRIP/tabpNOSV/ssubSCREEN_HEADER:SAPLALDB:3030/tblSAPLALDBSINGLE_E/ctxtRSCSEL_255-SLOW_E[1,0]").caretPosition = 4
session.findById("wnd[2]/tbar[0]/btn[8]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[0]/mbar/menu[0]/menu[3]/menu[1]").Select
session.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\Users\a914005\Desktop"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "projeto.XLSX"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 12
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/tbar[0]/btn[11]").press
Dim wsOrigem As Worksheet
Dim wsDestino As Worksheet
Workbooks.Open Filename:="C:\Users\a914005\Desktop\projeto.XLSX"
Set wsOrigem = Workbooks("projeto.XLSX").Worksheets("Sheet1")
Set wsDestino = Workbooks("Acompanhamento.xlsm").Worksheets("Realizado")
With wsOrigem
wsOrigem.Range("A2:cB2000").Copy
wsDestino.Range("b2").PasteSpecial xlValues
Application.CutCopyMode = False
Workbooks("projeto.XLSX").Close SaveChanges:=True
End With
MsgBox "Importação de Dados Concluída"
End Sub