attendre l'exécution du code avant ouverture complète d'Excel

Camaytoc

XLDnaute Nouveau
Bonjour,

Voilà j'ai un document qui exécute pas mal de code et lance des batch. J'utilise ShellWait qui fonctionne bien.

Le problème c'est que pour l'équipe de production, lorsqu'ils ouvrent le document, excel semble avoir terminé d'ouvrir le document, mais il y a un délais de près de 20 secondes avant que les données soient mis à jour. Cela cause de la confusion car rien ne permet de savoir si excel à terminé les mises à jour.

Existe-t-il un moyen de dire à Excel d'ouvrir les feuilles de calcul seulement lorsque le code est terminé (à l'ouverture du document bien sûr)?
 

pascal21

XLDnaute Barbatruc
Re : attendre l'exécution du code avant ouverture complète d'Excel

bonsoir
si j'ai bien compris
dans un de mes classeurs j'utilise cette methode
j'ai crée un USF nommé usfinfo (avec un label qui demande de patienter le temps que le système se charge) que je lance à l'ouverture du classeur avant de lancer les macros et qui se ferme tout seul lorsque les macros ont fini de travailler (chez moi ça fonctionne)
avec le code suivant
usfinfo.Show
usfinfo.Repaint
On Error Resume Next
voilà
 
Dernière édition:

pascal21

XLDnaute Barbatruc
Re : attendre l'exécution du code avant ouverture complète d'Excel

le label, je le crée dans l'usf
en fonction de la configuration de ton code il faudra voir où il est judicieux de placer le .show et.repaint
il te faudra peut-être faire quelques essais
 

pascal21

XLDnaute Barbatruc
Re : attendre l'exécution du code avant ouverture complète d'Excel

je ne sais pas ce qu'est ton refreshall mais si c'est ce qui met à jour , je le mettrais devant , moi
chez moi ça s'affiche le temps que la macro aille chercher un autre classeur, l'ouvre mette à jour ,et revienne sur le classeur initial (environ 5 secondes)
 
Dernière édition:

Camaytoc

XLDnaute Nouveau
Re : attendre l'exécution du code avant ouverture complète d'Excel

Oui désolé pour le label j'avais mal comptis je venais juste d'éditer mon message. Cela ne semble pas stoper l'ouverture du document.

Voilà: où se trouve le .show .repaint


Sub Workbook_Open()
Dim MySourceEngine As String
Dim MySourceXGM As String
Dim MyPlatform As String

'FileCopy "D:\techno\bin\libxslt\index.xml", "z:\statistics\xbox360index.xml"
ShellAndWait "z:/A2MUtilities/tools/libxslt/FindLatestXML.bat", 20000, vbHide, PromptUser
Call ShellAndWait("z:/A2MUtilities/tools/libxslt/xmlXsltProc.bat", 10000, vbHide, PromptUser)

MySourceEngine = Sheets("initialSetup").Range("C7").Value
MySourceXGM = Sheets("initialSetup").Range("C8").Value
ArchiveScript MySourceEngine, MySourceXGM
ThisWorkbook.RefreshAll
waitUserForm.Show
waitUserForm.Repaint
On Error Resume Next
End Sub
Sub ArchiveScript(MySourceEngine, MySourceXGM)
FileCopy MySourceXGM, "C:\Program Files\A2M\XGM.xml"
FileCopy MySourceEngine, "C:\Program Files\A2M\engine.txt"
End Sub
 

pascal21

XLDnaute Barbatruc
Re : attendre l'exécution du code avant ouverture complète d'Excel

fais un essai en le mettant juste apres la déclaration des variables
Sub Workbook_Open()
Dim MySourceEngine As String
Dim MySourceXGM As String
Dim MyPlatform As String
waitUserForm.Show
waitUserForm.Repaint
On Error Resume Next

'FileCopy "D:\techno\bin\libxslt\index.xml", "z:\statistics\xbox360index.xml"
ShellAndWait "z:/A2MUtilities/tools/libxslt/FindLatestXML.bat", 20000, vbHide, PromptUser
Call ShellAndWait("z:/A2MUtilities/tools/libxslt/xmlXsltProc.bat", 10000, vbHide, PromptUser)

MySourceEngine = Sheets("initialSetup").Range("C7").Value
MySourceXGM = Sheets("initialSetup").Range("C8").Value
ArchiveScript MySourceEngine, MySourceXGM
ThisWorkbook.RefreshAll

End Sub
Sub ArchiveScript(MySourceEngine, MySourceXGM)
FileCopy MySourceXGM, "C:\Program Files\A2M\XGM.xml"
FileCopy MySourceEngine, "C:\Program Files\A2M\engine.txt"
End Sub
si ça ne fonctionne pas désolé mais je passerai la main à d'autres
après ça dépasse mes compétences
aie!!! mon égo risque d'en prendre un bon coup
 
Dernière édition:

Statistiques des forums

Discussions
312 239
Messages
2 086 494
Membres
103 234
dernier inscrit
matteo75654548