Alors ça se passe comme ça :
Sub Export_articles_PRD()
Shell "C:\Program Files (x86)\SAP\FrontEnd\SAPgui\saplogon.exe", 4
Set wshshell = CreateObject("WScript.Shell")
Do Until wshshell.AppActivate("SAP Logon ")
Application.Wait Now + TimeValue("0:00:01")
Loop
Set SapGui = GetObject("SAPGUI")
Set Appl = SapGui.GetScriptingEngine
Set Connection = Appl.Openconnection("PRD-ECC-Production", True)
Set session = Connection.Children(0)
session.findById("wnd[0]/usr/txtRSYST-LANGU").Text = "FR"
Do Until wshshell.AppActivate("SAP Easy Access")
Application.Wait Now + TimeValue("0:00:01")
Loop
cette partie de code me permet simplement de me connecter à la session de sap,
Shell "wscript ""U:\9 Contrôle FM-SAP\SAP\Scripts export sap\Export_articles_PRD.vbs"""
et cette partie de code est le script éxecuté par SAP pour générer le fichier. il fait plusieurs manipulations et à un moment, sur la base de donnée sap, je fais extraire le tableau en format excel. à ce moment là après un moment de calcul mon fichier excel s'ouvre.
La session SAP se ferme via le script vbs, pas via vba. et donc à la fin de la procédure il me reste mon fichier excel fraichement généré et mon fichier excel dans lequel se situe le code vba (et dans lequel je traite les données extraites par cet export. je récupère les données via power query).