Suspendre une macro le temps d'exécution d'un script sur SAP
Résolu
yaciin
-
yaciin Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
yaciin Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour le forum,
je suis content de retourner vers vous, pour apprendre encore de vos expériences.
mon problème et le suivant :
je travaille sur une macro qui donne comme fruit un fichier excel composé d'informations récupérés depuis deux autres fichiers excel ( fichier_1 + fichier_2 + Ma_Macro = fichier_fruit )
ce qui est particulier c'est que ces deux fichiers d'entrée sont récupérés depuis SAP, grâce à un script, ce script est appelé au début ma macro, et la suite de ma macro (les lignes qui viennent après l'appel du script ) dépend du résultat du script.
Donc, mon soucis c'est de suspendre l'exécution des lignes qui viennent après l'appel du script, le temps que le script soit exécuté et les fichiers seront sauvegardés. car ce que VBA fait c'est lancer l'appel d'exécution de script sur SAP et continuer à exécuter ce qui suit.
j'espére que j'ai bien expliquer mon probléme.
En attente de vos précieuses suggestions et Merci d'avance.
je suis content de retourner vers vous, pour apprendre encore de vos expériences.
mon problème et le suivant :
je travaille sur une macro qui donne comme fruit un fichier excel composé d'informations récupérés depuis deux autres fichiers excel ( fichier_1 + fichier_2 + Ma_Macro = fichier_fruit )
ce qui est particulier c'est que ces deux fichiers d'entrée sont récupérés depuis SAP, grâce à un script, ce script est appelé au début ma macro, et la suite de ma macro (les lignes qui viennent après l'appel du script ) dépend du résultat du script.
Donc, mon soucis c'est de suspendre l'exécution des lignes qui viennent après l'appel du script, le temps que le script soit exécuté et les fichiers seront sauvegardés. car ce que VBA fait c'est lancer l'appel d'exécution de script sur SAP et continuer à exécuter ce qui suit.
j'espére que j'ai bien expliquer mon probléme.
En attente de vos précieuses suggestions et Merci d'avance.
A voir également:
- Stopper une macro en cours d'exécution
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Panne tnt en cours aujourd'hui - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- En cours de livraison ✓ - Forum Consommation & Internet
- En cours d'acheminement - Forum Consommation & Internet
7 réponses
Tu peux essayé un msgbox qui bloquera donc le déroulement de la macro tant que tu n'auras cliquer sur OK.
Et Cliquer sur OK quand le 2e scripte est terminé.
Enfin je ne sais pas si ça marche.
Et Cliquer sur OK quand le 2e scripte est terminé.
Enfin je ne sais pas si ça marche.
Bonjour
Vous pouvez essayer de mettre une question et répondre une fois la requête terminée
If MsgBox("Le script SAP est terminé ?", vbYes, "") = vbYes Then
End If
répondre Ok quand le script est terminé
Vous pouvez essayer de mettre une question et répondre une fois la requête terminée
If MsgBox("Le script SAP est terminé ?", vbYes, "") = vbYes Then
End If
répondre Ok quand le script est terminé
Bonjour,
une fonction qui attends la présence d'un fichier pendant x secondes avant de retourner False :
Si tu peux faire un retour sur tes tests pour valider stp.
eric
une fonction qui attends la présence d'un fichier pendant x secondes avant de retourner False :
Sub testAttendFichier() ' exemple d'utilisation de la fonction attendFichier() Debug.Print Time & " début test" If attendFichier("C:\toto.xls", 3) Then ' fichier ok, faire traitement Debug.Print Time & " ok" ' appel macro traitement ' ... Else ' fichier non présent après attente de 3 secondes Debug.Print Time & " nok, tempsMax dépassé" End If End Sub Function attendFichier(fichier As String, tempsMax As Single) As Boolean ' eriiic 05/03/14 ' attendFichier() attend la création d'un fichier pendant x secondes. ' paramètres d'appel ' - fichier: chemin complet (ex : "C:\toto.xls") ' - tempsMax : temps d'attente maxi en secondes avant de retouner False ' paramètre de retour ' - True : fichier présent ' - False : fichier absent avec tempsMax d'attente écoulé Dim t As Single t = Timer Do DoEvents Loop Until Dir(fichier) <> "" Or Timer - t > tempsMax If Timer - t <= tempsMax Then attendFichier = True End Function
Si tu peux faire un retour sur tes tests pour valider stp.
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour le forum,
de retour a mon bureau, voilà la solution que j'ai adopté, pour ceux cherchant une ayant l même problème que moi :
j'ai fais un test sur l'existence des fichiers grâce à une boucle While et voilà le code :
Sub debut()
nomfichier = "toto.txt"
chemin = ThisWorkbook.Path & "\"
Set fso = CreateObject("scripting.filesystemobject")
While fso.FileExists(chemin & nomfichier) = False
Wend
MsgBox "fichier trouvé"
End Sub
avec toto.txt est le fichier qui sera crée et en admettant que le classeur sur lequel je travaille est dans le même emplacement où mon fichier .txt sera créé.
Bonne semaine à tous.
de retour a mon bureau, voilà la solution que j'ai adopté, pour ceux cherchant une ayant l même problème que moi :
j'ai fais un test sur l'existence des fichiers grâce à une boucle While et voilà le code :
Sub debut()
nomfichier = "toto.txt"
chemin = ThisWorkbook.Path & "\"
Set fso = CreateObject("scripting.filesystemobject")
While fso.FileExists(chemin & nomfichier) = False
Wend
MsgBox "fichier trouvé"
End Sub
avec toto.txt est le fichier qui sera crée et en admettant que le classeur sur lequel je travaille est dans le même emplacement où mon fichier .txt sera créé.
Bonne semaine à tous.