Salvar Relatório do SAP com Programação VBA no Excel pode trazer significativa eficiência e consistência ao fluxo de trabalho.
Dependendo da transação do SAP, temos opções diferentes de salvamento. Pode-se atribuir o caminho e o nome do arquivo a uma caixa de diálogo do SAP ou usar o Salvar Como para salvar o relatório que é aberto em Excel.
O procedimento abaixo descreve como configurar um script em VBA para Excel, que interage com o SAP GUI, exporta o relatório salva o arquivo em uma pasta específica com o nome contendo a data e a hora.
Dica: grave o script da transação primeiro, antes de criar a automação com VBA. Com isso, você saberá qual comando usar para salvar o relatório.Se não sabe gravar o script, veja este artigo.
Salvar Relatório do SAP – usando Salvar Como
Para este exemplo, usarei a transação ME2J. Não entrarei em detalhes sobre os comando para inserção de dados no SAP. A ênfase será nos comandos necessários para salvar o arquivo.
</p> Public Sub RelatórioME2J() 'Declaração de variáveis e atribuição de valores Dim Caminho, NomeUsuario, Arquivo As String Set SapGuiAuto = GetObject("SAPGUI") Set SapGuiApp = SapGuiAuto.GetScriptingEngine Set Connection = SapGuiApp.Children(0) Set Session = Connection.Children(0) NomeUsuario = Environ$("username") Caminho = "C:Users" & NomeUsuario & "Downloads" Arquivo = "Relatório de Pedido (ME2J) " & Format(Now, "dd-mm-yyyy hh-mm") & ".xlsb"<p>
Primeiro estamos declarando as variáveis, inserindo as linhas de código para fazer a conexão com o SAP e atribuindo valores às variáveis.
Environ$(“username”) pega o nome do usuário da máquina.
No Caminho, estou concatenando o local com o nome do usuário. Um exemplo seria: C:Usersadriano.pataroDownloads
E em Arquivo, estou definindo o nome do arquivo concatenado com data e hora (Format(Now, “dd-mm-yyyy hh-mm”) e a extensão do arquivo (“.xlsb”).
Use os comandos de acordo com sua necessidade. Inserir dados, variante, layout etc. Agora vamos ver os comandos para gerar o arquivo Excel
</p>session.findById("wnd[0]/mbar/menu[0]/menu[3]/menu[1]").selectsession.findById("wnd[1]/tbar[0]/btn[0]").presssession.findById("wnd[1]/usr/subSUBSCREEN_STEPLOOP:SAPLSPO5:0150/sub:SAPLSPO5:0150/radSPOPLI-SELFLAG[0,0]").selectsession.findById("wnd[1]/tbar[0]/btn[0]").presssession.findById("wnd[1]/tbar[0]/btn[0]").press<p>
Com estes comandos, acionamos o menu para salvar e configuramos as opções de salvamento.
Ao final, será exibido o relatório no formato Excel. E para finalizar, o comando para Salvar Relatório do SAP:
ActiveWorkbook.SaveAs Caminho & Arquivo, FileFormat:=50Veja que usei a variável Caminho, que armazena o caminho configurado no início e a variável Arquivo, que contém o nome do arquivo, data e hora.
FileFormat:=50 é para salvar o arquivo no formato xlsb.
Faça o teste e verifique se deu tudo certo.
Salvar Relatório do SAP – usando caixa de diálogo
Vamos a um exemplo de salvar o Salvar Relatório do SAP, usando uma caixa de diálogo. Para este exemplo, usarei a transação FAGLL03.
Estes comando salvam o relatório Excel no caminho especificado, que contém o nome do arquivo, data e hora.
</p>Session.findById("wnd[0]/mbar/menu[0]/menu[3]/menu[1]").Select Session.findById("wnd[1]/tbar[0]/btn[0]").pressSession.findById("wnd[1]/usr/ctxtDY_PATH").Text = Caminho Session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = ArquivoSession.findById("wnd[1]/tbar[0]/btn[0]").pressApplication.Wait Now + TimeValue("00:00:03")<p>
Veja a caixa de diálogo configurada:

Faça o teste e verifique se deu tudo certo.
Salvar Relatório do SAP – participe
O que achou de Salvar Relatório do SAP? Deixe sua opinião nos comentários.
Se este conteúdo foi relevante para você, convide seus amigos para que eles também fiquem sabendo deste material.
Precisa desta automação na sua empresa? Entre em contato e vamos conversar.
Um abraço e até a próxima.