Exportation automatique SAP vers Excel
Bonjour,
Je travaille sous sap et j aimerais exporter des donnees vers Excel automatiquement.
Es ce possible?
Je sais que l on peut exporter les données sap vers excel en manu via des tcd. Mais peut on le faire en auto gerer par excel?
Par exemple quand on clic sur un bouton excel, on met a jour le tableur Excel avec les données extraite automatiquement de sap.
Es ce possible? Connaissez-vous un script?
Je vous remercie
Jc
Bonjour Guiss,
Vous pouvez utiliser l'enregistreur de script de SAP pour avoir un fichier ".VBS" et le code qui va bien
Ensuite il faut le manipuler avec Excel pour pouvoir changer certaines "variables"
Et l'exécuter avec le Shell
Bonjour
Aurais tu un exemple? Je ne vois pas commebt faire les script sous sap.
On fait un script et on l integre en vba a excel c est ca?
Merci
Guiss
Bonjour,
Pour enregistrer un script sur SAP rien de plus simple.
En premier ALT et F12
Puis dans liste qui c'est ouverte sélectionné "Enregistrement et playback de script"
Après avoir créé la macro, il vous suffit de l'enregistrer et d'en extraire le code.
Pour l’automatiser via excel il reste quelques petites modification à réaliser sur le script
La SCRIPT SAP s'affiche de cette manière de base
If Not IsObject(application) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set application = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(connection) Then
Set connection = application.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 application, "on"
End If
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "*****"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/usr/ctxtS_WERKS-LOW").text = "8876"
session.findById("wnd[0]/usr/ctxtS_WERKS-LOW").setFocus
session.findById("wnd[0]/usr/ctxtS_WERKS-LOW").caretPosition = 4
session.findById("wnd[0]/usr/btn%_S_DISPO_%_APP_%-VALU_PUSH").press
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,0]").text = "***"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,1]").text = "****"
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,1]").setFocus
session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1,1]").caretPosition = 3
'---------------------------------------------------------------------------------
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[0]/usr/ctxtVARIANT").text = "/*******"
session.findById("wnd[0]/usr/ctxtVARIANT").setFocus
session.findById("wnd[0]/usr/ctxtVARIANT").caretPosition = 9
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").contextMenu
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectContextMenuItem "xxxx"
session.findById("wnd[1]/usr/radRB_1").setFocus
session.findById("wnd[1]/usr/radRB_1").select
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "xxxxxxx"
session.findById("wnd[1]/usr/ctxtDY_PATH").setFocus
session.findById("wnd[1]/usr/ctxtDY_PATH").caretPosition = 11
session.findById("wnd[1]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
'---------------------------------------------------------------------------------
La seule partie du script qui nous intéresse est la partie entre les deux barres de ----
Après quelque modification pour l'adapter a VBA on trouve ceci:
Dim App, Connection, session As Object
Set SapGuiAuto = GetObject("SAPGUI")
Set App = SapGuiAuto.GetScriptingEngine
Set Connection = App.Children(0)
Set session = Connection.Children(0)
'---------------------------------------------------------------------------------
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[0]/usr/ctxtVARIANT").text = "/*******"
session.findById("wnd[0]/usr/ctxtVARIANT").setFocus
session.findById("wnd[0]/usr/ctxtVARIANT").caretPosition = 9
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").contextMenu
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectContextMenuItem "xxxx"
session.findById("wnd[1]/usr/radRB_1").setFocus
session.findById("wnd[1]/usr/radRB_1").select
session.findById("wnd[1]/tbar[0]/btn[0]").press
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "xxxxxxx"
session.findById("wnd[1]/usr/ctxtDY_PATH").setFocus
session.findById("wnd[1]/usr/ctxtDY_PATH").caretPosition = 11
session.findById("wnd[1]/tbar[0]/btn[11]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
session.findById("wnd[0]/tbar[0]/btn[3]").press
'---------------------------------------------------------------------------------
Il ne vous reste plus qu'à adapter cette démarche à votre SCRIPT SAP
Cognomen
Bonjour,
L'exemple de Cognomen est top mais si tu débute, tu y arriveras mieux avec une vidéo.
J'ai fait une série de tutoriels sur Youtube qui explique exactement ce que tu veux faire : exporter une table depuis SAP pour l'intégrer dans un fichier Excel.
Le lien de le vidéo est ICI
Si tu as d'autres questions n'hésite pas,
Lucas
Salut
Ok je vais regarder tout ca, je vous remercie.