Problème d'extraction SAP via VBA
Bonjour,
Je réalise un script VBA qui interagit avec SAP. A un moment donné, je dois réaliser l'extraction de données SAP sous forme de fichier xlsx : aucun soucis pour cela, il existe une fonctionnalité directement intégrée à la transaction SAP que j'utilise permettant, en appuyant sur un seul bouton, de sauvegarder le fichier xlsx d'extraction et de l'ouvrir automatiquement.
Seulement voilà, quand je réalise cette même extraction via mon script VBA (et non manuellement), l'opération fonctionne (le fichier est sauvegardé dans l'emplacement que j'ai indiqué), mais l'ouverture automatique est retardée à la fin du code... En effet, le fichier ne s'ouvre pas instantanément mais ne s'ouvre qu'une fois le script VBA entièrement lu. J'ai essayé plusieurs méthodes pour laisser le temps à l'ouverture automatique de s'effectuer (fonction .Wait, fonction DoEvents, boucle Do Until Ouverture du fichier...) mais rien n'y fait, le fichier d'extraction ne s'ouvre systématiquement qu'une fois la procédure VBA terminée.
Quelqu'un aurait-il une explication, voire mieux, une idée pour solutionner ce problème ? N'hésitez pas à demander des précisions s'il vous en faut, et merci d'avance !
bonjour, ce script, il fait quoi exactement ?
Ce script réalise un nombre d'opérations assez important, c'est pourquoi je ne l'ai pas détaillé dans le post précédent.
Pour essayer de le résumer : à partir d'un fichier .xlsx contenant une liste de références (références qui renvoient à des articles de notre base de données SAP), le script part recueillir un certain nombre de données dans SAP pour chacune de ces références. Plusieurs chemins différents sont empruntés en fonction de la référence (toutes les références ne nous correspondent pas à des articles du même type, il nous faut donc parcourir chaque cas ce qui fait un paquet de boucles If imbriquées...).
Dans l'un des cas (le plus fréquent à vrai dire), le chemin emprunté consiste à extraire sur SAP un classeur Excel à partir de la référence donnée, puis à le soumettre à un certain nombre d'opérations et de calculs. J'arrive sans problèmes jusqu'à l'étape de l'extraction, puisque le classeur Excel extrait est correctement sauvegardé. Cependant, ce classeur Excel ne s'ouvre pas automatiquement après l'extraction, comme il le fait pourtant lorsqu'on réalise la même opération manuellement. Par contre, si je force l'interruption de mon script, le classeur Excel extrait va alors s'ouvrir de lui-même.
re,
c'est 100% VBA ou y-a-t-il aussi une partie PQ ?
Le fichier ne s'ouvre pas, c'est dans un reseau ? Si on attend 1 ou quelque secondes et on vérifie l'existance du fichier et puis on ouvre.
Le fichier, c'est une sorte de CSV ou TXT ou ...
C'est 100% VBA, je n'utilise pas PQ.
J'ai essayé la méthode de patienter mettre quelques secondes d'attente avec la fonction .Wait, malgré cela l'ouverture automatique du fichier ne se réalise pas. Par contre je peux effectivement "forcer" l'ouverture du fichier avec la fonction .Open, mais cela cause parfois des erreurs au script : en effet, il arrive parfois que SAP réussit, pour une raison que j'ignore, à quand même lancer l'ouverture automatique du classeur extrait. Mais si le classeur vient déjà d'être ouvert par la fonction .Open du script, cela cause une erreur (on ne peut pas ouvrir deux fois le même fichier)... C'est pourquoi il serait préférable pour moi que l'ouverture automatique de SAP fonctionne, ainsi je n'aurais pas ce soucis.
Le fichier extrait quant à lui est un .xlsx
En tout cas, je te remercie du temps que tu prends pour m'aider. Je ne suis pas hyper clair dans mes explications je m'en rends bien compte, mais je débute dans VBA donc il n'est pas toujours aisé pour moi de donner les bonnes infos sur le forum pour que tu puisses m'aider... Donc s'il te manque encore des infos, n'hésite pas !
bonjour à tous,
peut-on voir ton script vba ?