Fehler 438
21.01.2025 20:55:23
xbelightx
ich bin ein absoluter VBA Neuling und versuche gerade einen Download aus SAP zu bauen und die Datei dann in eine andere Excel Tabelle einzufügen. So weit so gut...Dafür habe ich zwei Makros erstellt: 1. Marko führt den Download aus SAP durch und speichert die Datei auf meinem Laufwerk. Der 2. Makro kopiert die Daten und fügt sie dann in die andere Datei ein und schließt die erste Datei ( den SAP Download ). Funktioniert wunderbar.
Nun habe ich beide Makros untereinander zusammengefasst damit ich den Makro per Knopfdruck ausführen kann und nun kommt eine Fehlermeldung: Laufzeitfehler 438
Hier mein VBA Code:
1. Macro SAP Dowload
Sub testdownload()
Dim SapGuiAuto, Application, connection, session As Object
Set SapGuiAuto = GetObject("SAPGUI")
Set Application = SapGuiAuto.GetScriptingEngine
Set connection = Application.Children(0)
Set session = connection.Children(0)
session.findById("wnd[0]/tbar[0]/okcd").Text = "/nvl06f"
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 = 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]/tbar[1]/btn[18]").press
session.findById("wnd[0]/tbar[1]/btn[33]").press
session.findById("wnd[1]/usr/lbl[14,8]").SetFocus
session.findById("wnd[1]/usr/lbl[14,8]").caretPosition = 2
session.findById("wnd[1]").sendVKey 2
session.findById("wnd[0]/mbar/menu[0]/menu[5]/menu[1]").Select
session.findById("wnd[1]/usr/subSUB_CONFIGURATION:SAPLSALV_GUI_CUL_EXPORT_AS:0512/txtGS_EXPORT-FILE_NAME").Text = "XXX"
session.findById("wnd[1]/usr/subSUB_CONFIGURATION:SAPLSALV_GUI_CUL_EXPORT_AS:0512/txtGS_EXPORT-FILE_NAME").caretPosition = 7
session.findById("wnd[1]/tbar[0]/btn[20]").press
session.findById("wnd[1]/tbar[0]/btn[0]").press
End Sub
2. Macro Daten kopieren und einfügen
Sub DatenKopieren()
Dim offeneDatei As Workbook
Workbooks.Open "C:\temp\XXX.xlsx"
Set offeneDatei = ActiveWorkbook
'Wähle Datenbereich aus & kopieren
Range("A2:S2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
'Kopiere Daten in aktive Workbook
'Wähle nächste freie Zelle in Spalte A
Windows("XXX.xlsm").Activate
Sheets("XXX").Select
Range("A3").Select
'Daten einfügen
ActiveSheet.Paste
'XXX schließen
Application.DisplayAlerts = False
Workbooks("XXX.xlsx").Close SaveChanges = False
Application.DisplayAlerts = True
End Sub
Der Debugger markiert mir folgende Zeile gelb und sagt: Laufzeitfehler 438
Application.DisplayAlerts = False
Er schließt die Datei am Ende nicht.
Klappt wunderbar, wenn ich die Makros einzeln ausführe... nur auf Knopfdruck nicht!
Habt Ihr eine Idee woran das liegt?
Vielen Dank vorab.
Anzeige