Ich habe ein Problem, das einige User im Netz auch haben, aber ich habe dafür noch keine Lösung gefunden.
Ich möchte mit VB (EXCEL) einen SAP Extrakt automatisch mit Hilfe von GUI extraieren. Der Extrakt soll wieder eine Excel Datei sein. Das ganze funktioniert mit folgendem Code einwandfrei.
Es gibt nur ein problemchen. Die neu extraierte Excel Datei wird immer automatisch geöffnet. Dadurch bleibt das eigentliche Makro immer in Zeile 32 stehen und kann nur manuell wieder gestartet werden.
Wie kann ich das automatische öffnen des Datenextraktes unterbinden, oder mit VB so ignorieren, das es das Makro nicht stoppt?
Ich möchte mit VB (EXCEL) einen SAP Extrakt automatisch mit Hilfe von GUI extraieren. Der Extrakt soll wieder eine Excel Datei sein. Das ganze funktioniert mit folgendem Code einwandfrei.
Es gibt nur ein problemchen. Die neu extraierte Excel Datei wird immer automatisch geöffnet. Dadurch bleibt das eigentliche Makro immer in Zeile 32 stehen und kann nur manuell wieder gestartet werden.
Wie kann ich das automatische öffnen des Datenextraktes unterbinden, oder mit VB so ignorieren, das es das Makro nicht stoppt?
Visual Basic-Quellcode
- Sub SAP_Extrakt_Reservierungen()
- If Not IsObject(Application1) Then
- Set SapGuiAuto = GetObject("SAPGUI")
- Set Application1 = SapGuiAuto.GetScriptingEngine
- End If
- If Not IsObject(Connection) Then
- Set Connection = Application1.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 Application1, "on"
- End If
- session.findById("wnd[0]").maximize
- session.findById("wnd[0]/tbar[0]/okcd").Text = "/NMB25"
- session.findById("wnd[0]").sendvkey 0
- session.findById("wnd[0]/tbar[1]/btn[17]").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]/usr/cntlALV_CONTAINER_1/shellcont/shell").doubleClickCurrentCell
- session.findById("wnd[0]/tbar[1]/btn[8]").press
- session.findById("wnd[0]/mbar/menu[0]/menu[1]/menu[1]").Select
- session.findById("wnd[1]/tbar[0]/btn[0]").press
- session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 14
- session.findById("wnd[1]/usr/ctxtDY_FILENAME").Text = "Reservierungen.xlsx"
- session.findById("wnd[1]/tbar[0]/btn[11]").press '(Datei ersetzen)
- Windows("Reservierungen.xlsx").Activate
- ActiveWorkbook.Close SaveChanges:=False
- End Sub
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Parawolli“ ()