MIGO – Capturando informações com Excel VBA
Nessa postagem vou demonstrar como fazer a leitura e captura de dados do SAP através da TCode MIGO, utilizando a funcionalidade Sap Gui Scripting em conjunto com Excel VBA.
Vou utilizar como exemplo o modelo abaixo:

Abaixo a tela da MIGO referenciando os itens marcados acima com os campos no SAP.

Vou utilizar o arquivo padrão que utilizo para todas as minhas automações, disponível na postagem https://fabiomitsueda.com.br/sap-script-vba-conexao/ E abaixo o código comentado que vou utilizar nesse exemplo:
'Autor: Fabio Mitsueda
'Contato: mitsueda.fabio@gmail.com
'Data Criação: 20/05/2023
Option Explicit
Option Private Module
Public Sub Executar1()
Dim shtBase As Worksheet
Dim h, i, z As Long
Dim intRowVisible As Integer
Dim fCheck As Boolean
Dim Table As Object
'Carregando variavel de objeto
Set shtBase = ThisWorkbook.Sheets(ActiveSheet.Name)
'Limpar dados pre-preenchido
shtBase.Range("A6:F1005").ClearContents
'Acessando a MIGO
Session.findById("wnd[0]/tbar[0]/okcd").Text = "MIGO"
'Enviando a tecla enter
Session.findById("wnd[0]").sendVKey 0
'Opção exibir
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_FIRSTLINE:SAPLMIGO:0010/cmbGODYNPRO-ACTION").Key = "A04"
'Inserir numero da MIGO
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_FIRSTLINE:SAPLMIGO:0010/subSUB_FIRSTLINE_REFDOC:SAPLMIGO:2010/txtGODYNPRO-MAT_DOC").Text = shtBase.Cells(1, 2).Value
'Inserindo ano da MIGO
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_FIRSTLINE:SAPLMIGO:0010/subSUB_FIRSTLINE_REFDOC:SAPLMIGO:2010/txtGODYNPRO-DOC_YEAR").Text = shtBase.Cells(1, 3).Value
'Enviando enter
Session.findById("wnd[0]").sendVKey 0
'Carregado variavel da tabela de itens
Set Table = Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM")
'Capturando a quantidade de registros na tabela
z = Table.RowCount - 1
'Capturando a quantidade de linhas visiveis por tela
intRowVisible = Table.VisibleRowCount
'Iniciando contador de itens por tela
h = 0
'Loop de repetição para itens da tabela de itens
For i = 0 To z
'Selecionando a guia Material
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_MATERIAL").Select
'Movendo a barra de rolagem e atualizando a posição da linha
If i Mod intRowVisible = 0 Then
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM").verticalScrollbar.Position = i
h = 0
DoEvents
End If
'Sair do lanço de repetição caso não exista mais itens na tabela
If Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/btnGOITEM-ZEILE[0," & h & "]").Text = "____" Then
Exit For
End If
'Selecionando a linha
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/btnGOITEM-ZEILE[0," & h & "]").SetFocus
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/btnGOITEM-ZEILE[0," & h & "]").press
shtBase.Cells(6 + i, 1).Value = Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMLIST:SAPLMIGO:0200/tblSAPLMIGOTV_GOITEM/btnGOITEM-ZEILE[0," & h & "]").Text
'Material
shtBase.Cells(6 + i, 2).Value = Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_MATERIAL/ssubSUB_TS_GOITEM_MATERIAL:SAPLMIGO:0310/ctxtGOITEM-MATNR").Text
'Selecioando a guia de quantidade
Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_QUANTITIES").Select
'Quantidade
shtBase.Cells(6 + i, 3).Value = VBA.CDbl(Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_QUANTITIES/ssubSUB_TS_GOITEM_QUANTITIES:SAPLMIGO:0315/txtGOITEM-ERFMG").Text)
'Unidade medida
shtBase.Cells(6 + i, 4).Value = Session.findById("wnd[0]/usr/ssubSUB_MAIN_CARRIER:SAPLMIGO:0003/subSUB_ITEMDETAIL:SAPLMIGO:0301/subSUB_DETAIL:SAPLMIGO:0300/tabsTS_GOITEM/tabpOK_GOITEM_QUANTITIES/ssubSUB_TS_GOITEM_QUANTITIES:SAPLMIGO:0315/ctxtGOITEM-ERFME").Text
'Atualizando a linha de referencia
h = h + 1
Next
'Enviando a tecla enter
Session.findById("wnd[0]").sendVKey 0
MsgBox "Finalizado!!!"
'Descarregando Variavel de objeto
Set shtBase = Nothing
Set Table = Nothing
End Sub
Clique aqui para baixar o arquivo exemplo dessa postagem.

Fabio Parabéns pela conteúdo.