ich greife via VBA auf SAP zu, um mir diverse Abzüge zu generieren.
Nun ist es so, dass SAP lange läd, wenn die Datensätze entsprechen lang sind. Dann wirf mir Excel die Fehlermeldung "Microsoft Excel wartet auf die Beendigung einer OLE-Aktion in einer anderen Anwendung." Die Meldung kann ich zwar manuell wegdrücken, wenn SAP fertig geladen hat und den Code läuft dann auch weiter, jedoch wollte ich die Meldung unterdrücken, um die Benutzerfreundlichkeit zu erhöhen. Das funktioniert auch, jedoch nur zum Teil. Den Fehler habe ich gefunden, er ergibt für mich aber keinen Sinn. Mein Code lautet wie folgt:
Sub DatenausSAP()
....
'SAP öffnen
Shell "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe", 4
Set WshShell = CreateObject("WScript.Shell")
Set SapGui = GetObject("SAPGUI")
Set Appl = SapGui.GetScriptingEngine
Set Connection = Appl.Openconnection("1. N20 - Production", True)
'SAP Anmeldedaten eingeben
login = MsgBox("Please log in to SAP, then confirm with 'OK'.", vbOKCancel, "SAP")
Set session = Connection.Children(0)
'Fehlermeldung unterdrücken (1)
Application.DisplayAlerts = False
'Daten in SAP eingeben und exportieren
.... (unwichtig)
Application.DisplayAlerts = True
'Datei speichern
dateiname = Year(Now) & Month(Now) & Day(Now) & "_Rückstellungen_SAPDatengrundlage"
ActiveWorkbook.SaveAs "Z:\Personalrückstellungen\Archiv\" & dateiname & ".xlsx"
-Bis hier hin passt alles. Dann geht mein Code in SAP und macht genau das selbe nochmal:
Application.DisplayAlerts = False
'SAP Zugriff, andere Auswertung
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/usr/radPLSTAND").Select
session.findById("wnd[0]/usr/radPLSTAND").SetFocus
session.findById("wnd[0]/tbar[1]/btn[8]").press
'Fehlermeldung unterdrücken (2)
Application.DisplayAlerts = True
'speichern
dateiname = Year(Now) & Month(Now) & Day(Now) & "_Rückstellungen_SAPStandardliste"
(****)ActiveWorkbook.SaveAs ("Z:\Personalrückstellungen\Archiv\" & dateiname & ".xlsx")
- (****) Hier beim Speichern passiert dann der Fehler. Excel wirft einen Anwendungsfehler, als würde er den Ordner nicht mehr finden. Wenn ich die 'Fehlermeldung unterdrücken (2) auskommentiere, funktioniert alles wunderbar (allerdings wirft er dann wieder die nervige "Microsoft Excel wartet..." Meldung, die ich ja nicht haben will.
Ich kann mir leider nicht erklären, wieso er bei der zweiten Datei ein Problem hat. Hat vllt jemand anderes eine Idee?
Vielen Dank!!
LG Chocolino