oi, tenho uma dúvida
como posso usar uma macro para executa-lá em um outro programa .
+ detalhes:
Eu recebo planilhas e quero fazer uma macro para copiar e colar em um programa chamado SAP.
Essas planilhas que eu recebo vão alimentar este programa. Então ao invés de ficar copiando e colando no programa SAP, tenha algum modo de copiar e colar pressionando o botao da macro.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Nathalia, até onde sei a Macro que você cria no Excel só vai funcionar no Excel...
Com relação a esta interface entre o Excel e o SAP, não existe uma rotina de importação de dados dentro do SAP?
Eron
CRA/RS 27.563
Administrador Fórum Planilhando
achei isso, mas não entendo muito bem e deu errado
Sub teste() Dim attachpath As String Dim emailserver As String Dim MailRecipient As String Dim ctlTableFactory, RFC_READ_TABLE, eQUERY_TAB, tblOptions, tblData, tblFields, funcControl, objConnection, ctlLogon Set objFileSystemObject = CreateObject("Scripting.FileSystemObject") Set ctlLogon = CreateObject("SAP.LogonControl.1") Set funcControl = CreateObject("SAP.Functions") Set ctlTableFactory = CreateObject("SAP.TableFactory.1") Set objWindowsScriptShell = CreateObject("WScript.Shell") Set objConnection = ctlLogon.NewConnection 'Set filOutput = objFileSystemObject.CreateTextFile(attachpath, True) objConnection.ApplicationServer = "" objConnection.SystemNumber = "" objConnection.Client = "" objConnection.Language = "" objConnection.User = InputBox("login") objConnection.Password = InputBox("senha") booReturn = objConnection.logon(0, True) If booReturn <> True Then MsgBox " Cannot log on! " MsgBox booReturn Stop Else funcControl.Connection = objConnection Set RFC_READ_TABLE = funcControl.Add("RFC_READ_TABLE") Set strExport1 = RFC_READ_TABLE.Exports("QUERY_TABLE") Set strExport2 = RFC_READ_TABLE.Exports("DELIMITER") Set tblOptions = RFC_READ_TABLE.Tables("OPTIONS") Set tblData = RFC_READ_TABLE.Tables("DATA") Set tblFields = RFC_READ_TABLE.Tables("FIELDS") 'strExport1.Value = "MARA" 'strExport2.Value = ";" 'Change next line to use different selection criteria ' (EQ means =, LT means <, GT means >) ' Repeat the two lines below incrementing the number each time if your selection criteria exceeds 40 'tblOptions.AppendRow 'tblOptions(1, "TEXT") = "MANDT EQ '300' " 'tblOptions.AppendRow 'tblOptions(2, "TEXT") = " AND ARRIVDEPA EQ '" & InputBox("1 for Arrivals" & vbCrLf & "2 for Despatches") & "' AND NUMMBUKRS EQ '1000'" ' Repeat section between /** marks for each field that you want returned by the query, incrementing the number each time '/** 'tblFields.AppendRow 'tblFields(1, "FIELDNAME") = "MATNR" '** 'tblFields.AppendRow 'tblFields(2, "FIELDNAME") = "NAME1" If RFC_READ_TABLE.Call = True Then If tblData.RowCount > 0 Then ' Change Next line to write a different header row For intRow = 1 To tblData.RowCount Dim celula As String Dim COLUNA As Integer COLUNA = 0 COLUNA = COLUNA + 1 celula = "A" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "B" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "C" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "D" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "E" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "F" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "G" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "H" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "I" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "J" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "H" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "L" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "M" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "O" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "P" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "Q" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "R" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "S" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "T" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "U" & intRow Call escrever(celula, tblData(intRow, COLUNA)) COLUNA = COLUNA + 1 celula = "V" & intRow Call escrever(celula, tblData(intRow, COLUNA)) Next Else End If Else End If End If 'Set filOutput = Nothing 'MailProfile = "MS Exchange Settings" 'Set objSession = CreateObject("MAPI.Session") 'Set wshnet = CreateObject("Wscript.network") 'LOGONOK = objSession.logon("", "", False, True, 0, True, emailserver & vbLf & wshnet.UserName) 'Set objMessage = objSession.Outbox.Messages.Add 'Change below to Change subject line of email 'objMessage.Subject = "Intrastat Response" ' Change below to change body text of message 'strSetMessage = "There were " & tblData.RowCount & " records returned by your query" 'objMessage.Text = strSetMessage ' Change below to Change attachment title 'Set objOneAttach = objMessage.Attachments.Add("Intrastat", , 1, attachpath) 'objOneAttach.ReadFromFile (attachpath) ' Repeat block between /** markers for each recipient ' /** 'Set objOneRecip = objMessage.Recipients.Add ' Change name below for different recipients 'objOneRecip.Name = MailRecipient 'objOneRecip.Type = 1 'objOneRecip.Resolve ' ** 'objMessage.Importance = 1 'objMessage.Update 'objMessage.Send 'objSession.Logoff 'objConnection.Logoff End Sub Sub escrever(linha, valor) ' ' escrever Macro ' Macro recorded 6/21/2007 by nascimm ' Range(linha).Select ActiveCell.FormulaR1C1 = valor End Sub
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Certo Rafael!
Conversei com o Analista de TI aqui na empresa, e ele comentou que nunca surgiu este tipo de necessidade na área dele...
Na verdade o SAP permite você Importar planilhas de Excel com informações para dentro do Sistema.
Abraço!
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Na verdade o SAP permite você Importar planilhas de Excel com informações para dentro do Sistema
Bom pelo jeito o que ela quer é possível, agora falta saber fazer. Creio eu que só o pessoal de TI pode proporcionar isso e não criar uma macro que "jogue" as informações do Excel na base do SAP.
Tem como saber essa informação aí?
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Primeiramente, queiro agradecer o esforço de tentar ajudar rss. De um dia p/ outro ja tinham 6 comentários
+++ detalhes:
Diariamente, eu recebo uma planilha onde perco uns 15 minutos tendo o serviço de ficar copiando e colando las informações contidas nela para o SAP.
com outras palavras p/ ficar + claro;
Eu fico apertando ctrl+c (pra copiar as informaciones da planilha) ;
Alt+TAB ( pra mudar de tela e ir para o SAP );
ctrl+V ( para colar a informaçoes no SAP).
esse processo se repete por varias vezes.
A minha idéia é criar um botão na planilhaa que faz este processo sozinho ou alguma coisa do tipo que facilite esta tarefa.
Ja pesquisei sobre o assunto, me parece que com macro não da certo :
Achei um programa chamado macro expert, que faz com que repita tarefas repetitivas podendo usar programas diferentes, porém ainda não consegui usa-lo como quiero.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Nathalia,
como sugerido pelos outros, não é possível importar do SAP?
Qual a transação do SAP que está utilizando? Quais informações copia do Excel par ao SAP?
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
as informaçoes contidas no excel para o sap são transacoes de bancos dos clientes, dos fornecedores e da empres..
receber depositos.. pagar fornecedores...
------------//------------
como é una empresa multinacional, aqui no Brasil no hay centro de TI. No Brasil existe apenas a parte de contabilidade, contas a pagar e receber. Realmente, eu posso falar com eles, porém explicar por telefone ou por e-mail será complicado.
---------//----------
Estou com um programa chamado Journal macro. Estou conseguindo bons resultados com ele, porém nao é o que quero, pois até configura-lo perco um tempão.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
O SAP é um programa com base de dados Oracle, e com certeza o acesso as query são bloqueadas pela TI, mesmo que consiga elaborar um código, terá que ter acesso as query para inserir os dados.
Aqui na empresa onde trabalho, existe a transações "Z" feitas pela TI que facilitam a vida da gente com lançamentos por lote Bacht imput, funciona assim:
Cria a planilha em um padrão estabelecido pela TI depois importa esses dados através da transação que a TI desenvolve.
Att,
Mitsueda
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Em resposta a seu problema de ter que copiar e colar a planilha de Excel no sistema SAP, o que poderia resolver o seu problema seria um sistema chamado Comstar DataLoad. Este programa executa exatamente a função que você deseja, desde que seja programado devidamente (Equipe TI).
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Nathalia
Eu uso uma planilha dessa aqui no meu setor!, trabalho na expedição e faço troca de OV pela planilha do excel que joga automaticamente para o SAP
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Boa noite.
Nao querendo ressuscitar mas ja ressuscitando!
O SAP tem opções de criação de Scripts basicamente um "macro".
Também trabalho em expedição internacional e trabalho com OV.
O primeiro passo é ter o perfil e habilitar o "Registro e Reprodução de Scripts" no SAP.
Se já tiver esse acesso, simule um dos inputs (inputando todas as informações do primeiro grupo de dados) e grave o script.
Esse script será utilizado na macro do EXCEL, substituindo cada VALOR inserido por uma VARIÁVEL que buscará os valores nas linhas da planilha.
Tenho utilizado esse método para qualquer transação.
O trecho inicial do código (que linka o EXCEL ao SAP) é esse:
If Not IsObject(NOME) Then Set SapGuiAuto = GetObject("SAPGUI") Set NOME = SapGuiAuto.GetScriptingEngine End If If Not IsObject(Connection) Then Set Connection = NOME.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 NOME, "on" End If
A partir dai segue a declaração das variáveis que serão utilizadas no Script gerado pelo SAP, contendo o detalhamento dos nomes dos campos.
Maiores informações, marciogomes01@yahoo.com.br
Tópico Highlander !!!
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
no Excel Weekend 2, eu vi uma palestra sobre automação do SAP usando VBA... beem legal hein...
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel