¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo cambiar de ventana en SAP utilizando una macro de Excel VBA

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 77 Vistas
0
Cargando...

Estoy intentando hacer que mi macro existente de Excel VBA, que ya funciona bien con R/3, también cambie de ventana para manipular una sesión de APO en la que ya he iniciado sesión.

.

¿Cómo selecciono/cambio la ventana de SAP que la macro está controlando?

¡Cualquier ayuda o consejo sería muy apreciado!

Mike

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Después de muchas horas de navegación por internet y una caja de cerveza, encontré una solución que funcionó para mi aplicación. Puede que no sea la más bonita, pero sí funciona y puedo cambiar entre las ventanas (independientemente del orden en que se abrieron) a voluntad.

A continuación, te muestro lo que he armado.

Por favor, siéntete libre de hacer críticas ya que soy muy nuevo en SAP y VBA y tengo mucho que aprender.

Option Explicit

Sub ejemplo()

Dim Application, SapGuiAuto, Connection, session

Dim SID, bh1Wnd, ba1Wnd, CollCon, i, CollSes

Set SapGuiAuto = GetObject("SAPGUI")

Set Application = SapGuiAuto.GetScriptingEngine

Set CollCon = Application.Connections()

If Not IsObject(CollCon) Then

Exit Sub

End If

'- Encontrar ventanas de APO y R3 -------------------------------------------

For i = 0 To CollCon.Count() - 1

Set Connection = Application.Children(CLng(i))

If Not IsObject(Connection) Then

Exit Sub

End If

Set CollSes = Connection.sessions()

If Not IsObject(CollSes) Then

Exit Sub

End If

Set session = Connection.Children(0)

SID = session.info.SystemName()

If Not IsObject(bh1Wnd) Then

If SID = "BH1" Then Set bh1Wnd = Application.Children(CLng(i)) 'R3

End If

If Not IsObject(ba1Wnd) Then

If SID = "BA1" Then Set ba1Wnd = Application.Children(CLng(i)) 'APO

End If

Next

'- Cambiar a la ventana de R3 ---------------------

Set Connection = bh1Wnd

Set session = Connection.Children(0)

‘-------------------------------------------------------------------------------

‘código para realizar diversas tareas en R3 va aquí

‘-------------------------------------------------------------------------------

'----- cambiar a la ventana de APO ------------------------------------------------------

Set Connection = ba1Wnd

Set session = Connection.Children(0)

‘-------------------------------------------------------------------------------

‘código para realizar diversas tareas en APO va aquí

‘-------------------------------------------------------------------------------

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?