Skip to Content
0
May 24, 2018 at 09:13 PM

Copy values from Excel and paste in SAP using GUI Script

1947 Views

Good Morning. I am absolutely new in SAP. Please help me.

I want to copy the changed values from the same Excel cells when I run the script and paste in the same SAP destinations. But when I tried to add the sheet name & cells(row#,column#).values to make it dynamic (code as in the below) , it gives me error like: SAP Frontend Server: Expected ')'-


(1st Recorded Script) I get the below recording when I try to script my action to copy 16 different cell values (in 8 rows and 2 columns) and paste those in SAP:

If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.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 application, "on"
End If
session.findById("wnd[0]").maximize

session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-AU").setFocus
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-AU").caretPosition = 15
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/btnYYIMPFMM1000-BUTT2").press
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-AU").text = "1"
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-AU").text = "2"
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-AG").text = "688.52 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-AG").text = "658.18 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-AG_ST1").text = "688.52 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-AG_ST1").text = "660.21 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-PT").text = "37,888.45 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-PT").text = "36,708.00 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-PD").text = "37971.38"
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-PD").text = "36748.74"
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-RH").text = "83,758.87 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-RH").text = "82,297.62 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-IR").text = "43,538.03 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-IR").text = "42,778.47 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-RU").text = "9,692.39 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-RU").text = "9,370.52 "
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-RU").setFocus
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-RU").caretPosition = 15
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/btnYYIMPFMM1000-BUTT3").press
session.findById("wnd[1]/usr/btnBUTTON_1").press
session.findById("wnd[1]/tbar[0]/btn[0]").press


(2nd Addition to the Recorded Script) Added code to take the cell values dynamic:

...
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject application, "on"
End If

Set xcl = Createobject ("Excel.Application")
Set wbk = xcl.Openworkbook(['I:\JEP-Public\Markets\[Daily Markets-NEW.xlsx]Trader Sheet'])
Set sht = Sheets("Trader Sheet")


session.findById("wnd[0]").maximize
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-AU").text = sht.cells(3,2).value
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_C-AU").text = sht.cells(3,3).value
session.findById("wnd[0]/usr/tabsTAB1/tabpTAB1_FC1/ssub1000_SCA:SAPLYIMP_FMM:1000/txtYYIMPFMMVALUES_B-AG").text = sht.cells(4,2).value

...

Thank you.