Bonjour,
Le pilotage de SAP par Excel est faisable, mais pas forcément très simple... En particulier, il faut que tu récupères l'ID des contrôles de ton formulaire SAP.
Je précise qu'il est indispensable que les scripts soient activés sur ton client (et côté serveur il me semble).
En fait, tu as sur SAP un enregistreur de script qui pourra te générer du code en VB et te l'exporter sur un fichier VBS (que tu pourras ouvrir avec un éditeur de texte type bloc note).
Tu trouveras ci-dessous plus d'information sur le script recorder :
http://paperstreetenterprises.com/gui-scripting-guide/
Le but sera d'enregistrer les manipulations que tu fais à la main, puis de récupérer le code, le mettre dans VBA afin de l'éditer pour l'adapter à tes besoins.
Normalement, le script que tu auras sous format texte contiendra des lignes de code qui ressemblent à :
findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssub/1/2/tblSAPLALDBSINGLE/ctxt[1,0]").Text = "critére1"
Ici, le contrôle va se voir affecter la valeur "critére1". Tu pourras remplacer ce "critère1" par la donnée que tu veux rentrer; par exemple si tu souhaite entrer le contenu de la cellule A1 de la feuille 1, tu transformes ce code en :
findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssub/1/2/tblSAPLALDBSINGLE/ctxt[1,0]").Text = Sheets("Feuil1").range("A1").Value
Et ainsi de suite pour tous les contrôles que tu souhaites modifier.
Tu auras aussi beaucoup de lignes type "Set focus" ou "Set caret position", qui ne servent qu'à naviguer dans la fenêtre et ne sont pas forcément utiles...
Je te conseille vivement de ne pas enregistrer les modifications que tu fais dans SAP quand tu enregistres ton script
En effet, ça évitera de rentrer n'importe quoi dans SAP si tu te trompes dans ton code. Une fois que tu seras certain qu'il est bon, tu pourras enregistrer en script l'enregistrement des modifications dans SAP et le rajouter à la fin de ton code.
A noter aussi: Le script que tu enregistres dans SAP utilise des noms de variables qui peuvent être réservés par VBA (notamment application il me semble). Il faudra changer le nom de ces variables en quelque chose dont VBA n'a pas besoin.
Enfin, pour des raisons de sécurité, je te conseille de ne pas tenter d'automatiser le login au système, et de commencer ton script à partir de l'écran de base de SAP pour des raisons de sécurité. En effet, tu peux difficilement planquer ton mot de passe dans ton code, surtout que les mots de passe sur Excel sont assez vulnérables.
Bref, manipuler SAP depuis Excel peut être assez compliqué, mais ce n'est pas impossible (je l'ai déjà fait). Mais arme toi de patience, surtout que l'on ne pourra pas forcément t'aider vu que l'on ne saura pas reproduire les erreurs qui peuvent se produire lors de l'interaction Excel/SAP.
Bon courage!
Mr Poulpe
Partager