Rellenar y actuar desde el excel (vba) una pantalla de tws

Estoy un poco anclado, haber si alguien me da alguna solución / idea, necesito que desde una macro en excel interactúa con otra aplicación, concretamente una de TWS (opc mainframe), lo que me ocurre es que no se como reconocer la pantalla para realizar elpaste y los pertinentes sendkeys....

1 Respuesta

Respuesta
1

¿El TWS no te vino con un Software de conexión a Excel y otros programas? Normalmente viene. Dale una leidita a esto:

https://www.interactivebrokers.com/en/index.php?f=1062 

Abraham Valencia

Lo primero gracias... Yo Lo que quiero es cambiar una cosa en una serie de aplicaciones... Que estas las quería poner en un Excel...  Y este con una macro! Copiar una celda y pegar... Y luego con unos sendKeys cambiar un pequeño carácter... Y grabar.. Y así línea tras línea... GraciaS

Aja, te entendí mejor. No es lo más recomendable eso en realidad, pero tienes algunas opciones y creo que te será útil usar "Shell". Un ejemplo:

Call Shell("WinWord.exe", vbNormalFocus)

Esa línea abre el Word de Office. Lo otro es ya que intentes enviar, a la aplicación que desees, instrucciones mediante "SendKeys", lo que no necesariamente resultará en un 100%. Dale una leídita a esto:

http://www.contextures.com/excelvbasendkeys.html 

Comentas

Abraham Valencia

hola...

Estoy intentando hacer una cosa así... (pero no consigo que cambie de pantalla)

'Para host on demand
tiempo = 100 'tiempo entre comandos
Dim Sys As Object, sesion As Object, pan As Object, Sys1 As Object, sesion1 As Object, pan1 As Object
Set Sys = CreateObject("HIOLE.System")
' oficinas  *************************************************************************************************
Set sess = Sys.sessions.Item("IMS Produccion")
If (sess Is Nothing) Then
   'If session not open then open it
   Sys.sessions.Open ("IMS Produccion")
   Set sess = Sys.activesession
End If
sess.FileTransferScheme = "C:\Archivos de programa\Attachmate\EXTRA!\Schemes\ESP\texto por omision.eis"
Set pan = sess.Screen
lngrow = 1
Do While (Cells(lngrow, 2) <> "")
    pan.SendKeys ("<Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab>" + "A " + "<Enter>")
    pan.WaitHostQuiet (tiempo)
    pan.SendKeys ("<Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab><Tab>" + Trim(Cells(lngrow, 2)) + "<Enter>")
    pan.WaitHostQuiet (tiempo)
    pan.SendKeys ("c" + "<Enter>")
    pan.WaitHostQuiet (tiempo)
 lngrow = lngrow + 1
Loop

SendKeys" es un método del VBA, en este caso Excel, y estás intentando usarlo como método de tu objeto "pan". ¿es tu objeto "pan" uno compatible con VBA? ¿tiene el método mencionado? Tengo la impresión de que no. Segundo, dale una leida al enlace que te he enviado, estás usando mal el "sendKeys". Por ejemplo, colocas:

SendKeys ("<Tab>...

Y lo correcto es:

SendKeys "{TAB}"

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas