extraer texto de sap y copiar en excel – SAP Script

publicado por: Anonymous

Hace un buen tiempo que no pasaba a saludar.

Quería consultar acerca de este tema que estoy viendo hace muy poco que son los scripts para automatizar procesos con SAp desde Excel.

En particular estoy haciendo un script para generar guias de despacho desde SAP.
ya tengo una parte (me crea la guia), pero hay un numero que no puedo copiar, para poder pasarlo a imprimir. (la idea es copiar y pegarlo en una celda de mi hoja desde donde lanzo la macro, para pasar al otro paso de imprimir.
Desde la grabadora de script, no me guarda ese paso. Espero me puedan ayudar.

Gracias de antemano
introducir la descripción de la imagen aquí

    Sub creadorGD()

Dim application
Dim connection

Set objsheet = ActiveWorkbook.ActiveSheet

H = Range("B7")
sucursal = Range("C7")

'determina cecos y centros

If sucursal = "ARICA" Then
ceco = "11010180"
centro = "1010"
End If

If sucursal = "IQUIQUE" Then
ceco = "11010280"
centro = "1011"
End If

If sucursal = "CALAMA" Then
ceco = "11010480"
centro = "1013"
End If

If sucursal = "ANTOFAGASTA" Then
ceco = "11010380"
centro = "1012"
End If

If sucursal = "COPIAPO" Then
ceco = "11020180"
centro = "1020"
End If

If sucursal = "LASERENA" Then
ceco = "11020280"
centro = "1021"
End If

If sucursal = "PLACILLA" Then
ceco = "11020380"
centro = "1022"
End If

If sucursal = "LASCONDES" Then
ceco = "11080284"
centro = "1071"
End If

If sucursal = "CANTAGALLO" Then
ceco = "11080184"
centro = "1070"
End If

If sucursal = "LADEHESA" Then
ceco = "11080484"
centro = "1073"
End If

If sucursal = "MACKENNA" Then
ceco = "11070680"
centro = "1087"
End If

If sucursal = "SANBERNARDO" Then
ceco = "11070780"
centro = "1088"
End If

If sucursal = "SANTIAGO" Then
ceco = "11070186"
centro = "1081"
End If

If sucursal = "QUILICURA" Then
ceco = 11070280
centro = 1082
End If

If sucursal = "RANCAGUA" Then
ceco = "11030180"
centro = "1030"
End If

If sucursal = "CURICO" Then
ceco = "11030280"
centro = "1031"
End If

If sucursal = "TALCA" Then
ceco = "11030380"
centro = "1032"
End If

If sucursal = "CHILLAN" Then
ceco = "11040380"
centro = "1040"
End If

If sucursal = "CONCEPCIÓN" Then
ceco = "11040180"
centro = "1041"
End If

If sucursal = "LOSANGELES" Then
ceco = "11050180"
centro = "1050"
End If

If sucursal = "TEMUCO" Then
ceco = "11050280"
centro = "1051"
End If

If sucursal = "VALDIVIA" Then
ceco = "11050380"
centro = "1052"
End If

If sucursal = "OSORNO" Then
ceco = "11060180"
centro = "1060"
End If

If sucursal = "LLANQUIHUE" Then
ceco = "11060280"
centro = "1061"
End If

If sucursal = "COYHAIQUE" Then
ceco = "11060580"
centro = "1064"
End If

If sucursal = "PUNTAARENAS" Then
ceco = "11060680"
centro = "1065"
End If

If sucursal = "PREVENTA" Then
ceco = "11002624"
centro = "1003"
End If

receptor = Range("D7")
fecha = Format(Date, "dd.mm.yyyy")

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

'priemra parte
'session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nZ_GD_MAQUINA"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtKNA1-KUNNR").Text = centro
session.findById("wnd[0]/usr/ctxtW_FECHA").Text = fecha
session.findById("wnd[0]/usr/ctxtTVSTZ-WERKS").Text = "1003"
session.findById("wnd[0]/usr/ctxtZAREAVTA-BUKRS").Text = "1000"
session.findById("wnd[0]/usr/txtW_TEXTO").Text = receptor
session.findById("wnd[0]/usr/txtW_TEXTO").SetFocus
'session.findById("wnd[0]/usr/txtW_TEXTO").caretPosition = 18
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/txtW_TEXTO").Text = receptor
session.findById("wnd[0]/usr/txtW_TEXTO").SetFocus
'session.findById("wnd[0]/usr/txtW_TEXTO").caretPosition = 18
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/btnBTN_MATCH").press
session.findById("wnd[1]/usr/lbl[21,5]").SetFocus
'session.findById("wnd[1]/usr/lbl[21,5]").caretPosition = 64
session.findById("wnd[1]").sendVKey 2
session.findById("wnd[0]/usr/tblZSD_GENERA_ZSGCDETALLE/txtT_DETALLE-ARKTX[0,0]").Text = H
session.findById("wnd[0]/usr/tblZSD_GENERA_ZSGCDETALLE/txtT_DETALLE-KWMENG[1,0]").Text = "1"
session.findById("wnd[0]/usr/tblZSD_GENERA_ZSGCDETALLE/txtT_DETALLE-NETWR[2,0]").Text = "700000"
session.findById("wnd[0]/usr/tblZSD_GENERA_ZSGCDETALLE/txtT_DETALLE-NETWR[2,0]").SetFocus
session.findById("wnd[0]/usr/tblZSD_GENERA_ZSGCDETALLE/txtT_DETALLE-NETWR[2,0]").caretPosition = 7
    session.findById("wnd[0]").sendVKey 0
    session.findById("wnd[0]/usr/btnGENERAR").press
'favor copiar numero
MsgBox "favor guarde numero de guia, muy importante"
 ' session.findById("wnd[1]/usr/cntlCC1/shellcont/shell").setSelectionIndexes 20, 28
 ' Selection.Copy



'session.findById("wnd[1]/tbar[0]/btn[0]").press




'Status = session.findById("wnd[0]/sbar").Text
 'objsheet.Cells(10, 2) = Status

'session.findById("wnd[0]/tbar[0]/btn[15]").press






End Sub

solución

Eu gostaria de tentar o seguinte:

...
MsgBox "favor guarde numero de guia, muy importante"
myText = session.findById("wnd[1]/usr/cntlCC1/shellcont/shell").text
myText = right(myText,8)
...

Cumprimentos,
ScriptMan

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *