Macro avec autre logiciel
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Pas de fichier exemple, c'est une question pour ma connaissance personnelle (pour le moment)
Je voulais savoir si c'était possible de faire une macro en exportant des fichiers sur excel via un ERP (SAP)
Merci d'avance
5 réponses
La discussion porte sur la faisabilité d'une macro permettant d'exporter des données de SAP vers Excel, afin d'automatiser l'interaction entre l'ERP et le classeur et d'accéder rapidement au contenu. Plusieurs pistes abordent l'usage de SendKeys et AppActivate, l'importance d'une temporisation et la nécessité de fermer l'application source pour basculer vers Excel, afin d'automatiser le copier-coller du contenu HTML. Des utilisateurs rapportent qu'un script final utilisant AppActivate, une temporisation et SendKeys peut fonctionner, à condition de gérer les fenêtres et le papier par lot et de valider le contexte Excel. En cas de changement des protocoles SAP, ce type d'automatisation peut devenir obsolète et nécessiter des ajustements, ce qui souligne la fragilité des solutions basées sur l'automatisation d'interfaces propriétaires.
-
bonjour
Si tu veux "exporter des fichiers sur excel" il faut faire la macro dans l'ERP.
Plus exactement dans l'ERP, tu fais un export dans un fichier (CSV par exemple) puis dans excel tu peux faire un import du fichier avec une macro de traitement.
-
-
-
-
-
On ne peut pas éditer mais j'ajoute mon avis perso :
Tu vas passer un temps fou à trouver ça.
Si c'est possible et que demain SAP change ses protocoles plus rien ne marchera et tout sera à refaire.
Donc je remettrai cette idée dans ma poche avec mon mouchoir par dessus, et je ferai une macro qui travaille avec l'export xls de SAP ;-)
eric
-
-
Bonjour tout le monde,
Les codes touches sont sur Internet :
http://users.skynet.be/micdub/vba6.htm#touche_code -
Malgré de nombreux test
"Argument ou appel de procédure incorrect"
S'affiche lors de l'éxécution de la macro !-
-
ce que j'ai écris est simple
Sub exportSAP() ' 'codes à envoyer à SAP AppActivate "SAP logon" SendKeys "^+{F7}" SendKeys "{enter 3}", True AppActivate "Classeur5.xls" End Sub
Sachant que mes tests se portaient sur le changement de "SAP logon" que j'ai beaucoup modifié!
Et au préalable j'ai préparer SAP qui est prêt à se faire exporter ! -
-
-
-
-
Re-
J'ai trouvé sur le net cette sub qui liste le titre de toutes les fenêtres ouvertes, toutes applications confondues. Cela pourrait également servir à déterminer qu'elle fenêtre activer avec AppActivate...
Option Explicit Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Sub ListeFenetresOuvertes() Dim hWnd As Long Dim Titre_Fenetre As String * 255 Dim TitreFen As String Dim ret As String Dim j As Long hWnd = GetWindow(GetDesktopWindow(), 5) Do While (Not IsNull(hWnd)) And (hWnd <> 0) 'Passe en revue chaque fenêtre Titre_Fenetre = String(255, 0) 'Formate la chaine destinée à accueillir le titre de la fenêtre ret = GetWindowText(hWnd, Titre_Fenetre, 255) 'récupère le titre de la fenêtre et le nombre de caractères de ce titre If Titre_Fenetre <> String(255, 0) Then 'Si le titre n'est pas vide If IsWindowVisible(hWnd) = 1 Then 'Pour ne tenir compte que des fenêtres visibles (regardez ce que ça donne en retirant cette condition) TitreFen = Titre_Fenetre 'récupère le titre de la fenêtre TitreFen = Left(TitreFen, ret) 'sans les caractères supplémentaires finaux j = j + 1 Sheets("Feuil1").Range("A" & j) = TitreFen Sheets("Feuil1").Range("B" & j + 1) = Titre_Fenetre j = j + 1 End If End If hWnd = GetWindow(hWnd, 2) 'cherche la fenêtre suivant Loop End Sub
Cordialement,
Franck P -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Merci pour vos messages mais j'y connait pas grand chose en VBa et là ça dépasse vraiment mes petites compétences...
-
Ce n'est pas parce que tu débutes qu'il faut laisser tomber...
On te demande de continuer ce sujet pour réussir à réaliser ce que beaucoup d'autres n'ont pas su faire.
Regarde sur Internet, ce genre de question s'est posée plusieurs fois sans solutions... Si, grâce à ton aide, Eriiic ou moi (voir les 2) trouvons la méthode se sera ça de gagné pour toi et toute la communauté...
Donc essaye à nouveau, dis nous ou ça coince et ensemble on va peut être y parvenir...
Je dis "peut être" car SAP est une rude machine dure à percer...........
Persévérons, je suis persuadé que cela vaut le coup.
ps : si je disposais de SAP et pouvais tester moi même, je ne te demanderais pas de rester mais là... -
-
-
Re,
Pour activer la fenetre il faut en paramètre soit :
-prendre le début de la chaine (autant de caractères que tu veux, 2 ou 10 ou ...) affichée dans la barre de titre de la fenetre.
- ou, si cette partie n'est pas constante ou suffisament discriminante, prendre ce qu'il y a après le tiret - , mais là il faut toute la chaine jusqu'au bout.
Si avec ces 2 possibilités tu n'arrives pas à trouver une partie constante suffisament significative, il reste la possibilité dans lancer SAP par excel et là on aura le handle de la fenetre sans ambiguité. Mais c'est plus contraignant...
eric
-