Ir ao conteúdo

Posts recomendados

Postado

Olá a todos(as)

Preciso de ajuda com um script para colar um arquivo extraido do SAP para uma planilha do excel sempre na próxima celula em branco.
O script que criei cola sempre na mesma celula (A4), porém como vou extrair relatorios diários gostaria que o script rodasse sempre para colar na próxima celula em branco, assim teria um relatorio mensal de todas entradas no sistema.

Alguém por gentileza saberia como me ajudar nesse caso?
Desde já muito obrigado.
Segue abaixo o script que utilizei para  transação MB51 do SAP.
 

 

 

Sub MB51()


Dim Appl, SapGuiAuto, Connection, Session, WScript

Dim i, uCelula
uCelula = Planilha3.Cells(Planilha3.UsedRange.Rows.Count, 1).Row
For i = 2 To uCelula


If Not IsObject(Appl) Then
   Set SapGuiAuto = GetObject("SAPGUI")
   Set Appl = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
   Set Connection = Appl.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 Appl, "on"
End If


If Cells(i, "a") = "Dt.entr." Then

Exit For

End If



'session.findById("wnd[0]").maximize
Session.findById("wnd[0]/tbar[0]/okcd").Text = "/nMB51"
Session.findById("wnd[0]").sendVKey 0
Session.findById("wnd[0]/usr/ctxtWERKS-LOW").Text = "6800"
Session.findById("wnd[0]/usr/ctxtLGORT-LOW").Text = "AM01"
Session.findById("wnd[0]/usr/ctxtBWART-LOW").Text = "101"
Session.findById("wnd[0]/usr/ctxtBWART-HIGH").Text = "103"
Session.findById("wnd[0]/usr/ctxtBUDAT-LOW").Text = Cells(i, "a")
Session.findById("wnd[0]/usr/radRFLAT_L").SetFocus
Session.findById("wnd[0]/usr/radRFLAT_L").Select
Session.findById("wnd[0]/tbar[1]/btn[8]").press
Session.findById("wnd[0]/mbar/menu[0]/menu[1]/menu[2]").Select
Session.findById("wnd[1]/tbar[0]/btn[0]").press
Session.findById("wnd[1]/usr/ctxtDY_PATH").Text = "C:\Users\rf.lima\SAP\GUI"
Session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "mb.txt"
Session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 6
Session.findById("wnd[1]/tbar[0]/btn[11]").press
Session.findById("wnd[0]/tbar[0]/btn[3]").press
Session.findById("wnd[0]/tbar[0]/btn[3]").press

Next


iPlan = ActiveWorkbook.Name



'Macro acessa local onde é salvo o arquivo não convert formato txt do SAP e usa assistente de importação de texto largura fixa para abrir no excel:



Workbooks.OpenText Filename:="C:\Users\rf.lima\SAP\GUI\mb.txt", Origin:= _
        65000, StartRow:=4, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 9), _
        Array(1, 1), Array(12, 9), Array(13, 1), Array(23, 9), Array(24, 1), Array(27, 9), Array(28 _
        , 1), Array(40, 9), Array(41, 1), Array(49, 9), Array(50, 1), Array(60, 9), Array(61, 1), _
        Array(101, 9), Array(102, 1), Array(112, 9), Array(113, 1), Array(116, 9), Array(117, 1), _
        Array(121, 9), Array(122, 1), Array(126, 9), Array(127, 1), Array(147, 9), Array(148, 1), _
        Array(152, 9), Array(153, 1), Array(163, 9), Array(164, 1), Array(185, 9)), _
        TrailingMinusNumbers:=True

'seleciona  a celula A4 da planilha excel que foi importado o texto

Cells.Select
Range("A3").Select



'comando ultima linha

X = Cells(Cells.Rows.Count, "a").End(xlUp).Row - 4

'Seleciona da linha 3 coluna 1 até a ultima linha da coluna 16

Range(Cells(3, 1), Cells(X, 16)).Select

'copiar a seleção e local onde vai ser colado
Selection.Copy Destination:=Workbooks(iPlan).Worksheets("Planilha3").Range("A4")

Cells.Select
Range("A4").Select


ActiveWorkbook.Close SAVECHANGES:=False


End Sub

 

SCRIPTMB51.txt

Postado

@Roger Prado substitua a linha a baixo, no seu script

 

'copiar a seleção e local onde vai ser colado
Selection.Copy Destination:=Workbooks(iPlan).Worksheets("Planilha3") _
                            .Range("A" & Cells(Rows.Count, "A").End(xlUp).Offset(1).Row)

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!