SCRIPT SAP - Excel

Buen día, he desarrollado el siguiente script:

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]/tbar[0]/okcd").text = "zsd0105n"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[17]").press
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").currentCellRow = 1
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = "1"
session.findById("wnd[1]/tbar[0]/btn[2]").press
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/tbar[1]/btn[43]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "Y:\Proyecto Matriz de operadores"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "completo operadores.XLSX"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 19
session.findById("wnd[1]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/tbar[1]/btn[17]").press
session.findById("wnd[1]/usr/txtENAME-LOW").setFocus
session.findById("wnd[1]/usr/txtENAME-LOW").caretPosition = 8
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").currentCellRow = 2
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = "2"
session.findById("wnd[1]/tbar[0]/btn[2]").press
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/tbar[1]/btn[43]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "Y:\Proyecto Matriz de operadores"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "completo unidades.XLSX"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 17
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
session.findById("wnd[0]/tbar[0]/okcd").text = "zsd0107n"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[17]").press
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = "0"
session.findById("wnd[1]/tbar[0]/btn[2]").press
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/tbar[1]/btn[43]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "Y:\Proyecto Matriz de operadores"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "completo inspecciones.XLSX"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 21
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
session.findById("wnd[0]/tbar[0]/okcd").text = "zsd0104n"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[17]").press
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").currentCellRow = 1
session.findById("wnd[1]/usr/cntlALV_CONTAINER_1/shellcont/shell").selectedRows = "1"
session.findById("wnd[1]/tbar[0]/btn[2]").press
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/tbar[1]/btn[43]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "Y:\Proyecto Matriz de operadores"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "completo cursos.XLSX"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 15
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

Lo que busco es lo siguiente, este script me arroja los datos desordenados en 4 libros diferentes de una sola hoja cada uno y en cuanto se está ejecutando estos libros me los va abriendo. He tratado de vincularlos mediante un VLOOKUP a una matriz de datos ya ordenados pero el problema es que cada que se abren los libros por el script, se pone un NA en la matriz, lo que quiero es ver que se le puede modificar al código para lo siguiente:

  1. Que los 4 libros en realidad me los agrupe en uno solo y que no se abran en cuanto se está ejecutando el script, sino que solo actualice los datos y los guarde automáticamente o algun otro metodo que me recomienden para extraer los datos al formato de excel previamente ordenado.

  2. Ver si es posible que este script se ejecute con algun boton en el formato de excel que les comento (macro) ya que es un archivo que está en la intranet de la empresa y lo ocuparan varias personas, lo digo para que asi solo se metan al archivo de excel, le den actualizar y listo.

Nota: me habían comentado que se podia de manera que se iniciara sesión desde excel, pero para esto se requieren unos permisos los cuales no tengo y no me van a autorizar.

Gracias por su ayuda

Hola @BryanDoMen

Por lo visto estas consultas son más de VBA para excel que algo de SAP puntualmente:

Todo eso es posible con programación VBA en excel.
No veo aquí si hay alguna consulta sobre SAP :thinking:

:exclamation: Por otro lado, procura presentarte (aún no lo has hecho), y procura también ayudar a otros colegas… que tampoco lo has hecho.

Este tema se cerró automáticamente 91 días después de la última publicación. No se permiten nuevas respuestas.