Attendre la fin du chargement d'un fichier avant de poursuivre ma macro
Fermé
papalulu2
-
28 mai 2021 à 10:15
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 - 5 juin 2021 à 13:42
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 - 5 juin 2021 à 13:42
A voir également:
- Vba attendre ouverture fichier
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Ouvrir fichier .bin - Guide
3 réponses
Merci !
Ma question était incomplète et mal posée, mais ta réponse m'a mis sur la bonne piste, en me permettant de comprendre mes erreurs.
Merci encore. Papalulu2
Ma question était incomplète et mal posée, mais ta réponse m'a mis sur la bonne piste, en me permettant de comprendre mes erreurs.
Merci encore. Papalulu2
yg_be
Messages postés
22692
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 avril 2024
1 471
28 mai 2021 à 11:20
28 mai 2021 à 11:20
bonjour,
quel genre de fichier ouvres-tu?
quel travail y fais-tu?
n'hésite pas à partager ton code, en tenant compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
quel genre de fichier ouvres-tu?
quel travail y fais-tu?
n'hésite pas à partager ton code, en tenant compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Merci beaucoup de ton intérêt pour mon problème, que je précise donc un peu mieux.
Je suis en EXCEL 2016 sur Windows.
La macro que j'exécute est située dans un fichier appelé "outils.xlsx". Dans le cours de son exécution, alors que le fichier "outils.xlsx" est l'ActiveWorkbook, cette macro rencontre une instruction :
MonApplication.Open (repertoire2021 & "\_Modèle2021.xlsm")
Ce fichier "_Modèle2021.xlsm" met quelques secondes à se charger, mais, sans attendre la fin du chargement, la macro se poursuit sur une instruction pour sauvegarder "_Modèle2021.xlsm" sous un autre nom :
ActiveWorkbook.SaveAs (repertoire2021 & "\" & NomResident & " temporaire")
Mais, à ce moment là, le fichier "_Modèle2021.xlsm" n'est pas encore fini de charger, et l'ActiveWorkbook est toujours "outils" et non pas "_Modèle.xlms" comme il faudrait... Résultat, c'est l'ActiveWorkbook "outils.xlsx" qui se trouve sauvegardé en "NomResident temporaire", ce qui n'est pas le but recherché.
J'ai essayé de mettre un :
Application.Wait Now + TimeValue("00:00:10")
après l'instruction de chargement, mais ça ne donne rien : ca semble geler toute la macro pendant 10 sec... y compris le processus d'ouverture de "_Modèle2021.xlsm"...
J'ai aussi essayé de mettre dans le ThisWorkbook de "_Modèle2021.xlsm" une gestion d'évènement :
Private Sub Workbook_Open()
MsgBox "Le fichier-modèle 2021 est ouvert"
Beep
End Sub
Ca marche très bien quand j'ouvre ce fichier "à la main", mais le MsgBox ne s'affiche pas quand l'ouverture de "_Modèle2021.xlsm" est commandée par ma macro.
Merci de ton aide
Je suis en EXCEL 2016 sur Windows.
La macro que j'exécute est située dans un fichier appelé "outils.xlsx". Dans le cours de son exécution, alors que le fichier "outils.xlsx" est l'ActiveWorkbook, cette macro rencontre une instruction :
MonApplication.Open (repertoire2021 & "\_Modèle2021.xlsm")
Ce fichier "_Modèle2021.xlsm" met quelques secondes à se charger, mais, sans attendre la fin du chargement, la macro se poursuit sur une instruction pour sauvegarder "_Modèle2021.xlsm" sous un autre nom :
ActiveWorkbook.SaveAs (repertoire2021 & "\" & NomResident & " temporaire")
Mais, à ce moment là, le fichier "_Modèle2021.xlsm" n'est pas encore fini de charger, et l'ActiveWorkbook est toujours "outils" et non pas "_Modèle.xlms" comme il faudrait... Résultat, c'est l'ActiveWorkbook "outils.xlsx" qui se trouve sauvegardé en "NomResident temporaire", ce qui n'est pas le but recherché.
J'ai essayé de mettre un :
Application.Wait Now + TimeValue("00:00:10")
après l'instruction de chargement, mais ça ne donne rien : ca semble geler toute la macro pendant 10 sec... y compris le processus d'ouverture de "_Modèle2021.xlsm"...
J'ai aussi essayé de mettre dans le ThisWorkbook de "_Modèle2021.xlsm" une gestion d'évènement :
Private Sub Workbook_Open()
MsgBox "Le fichier-modèle 2021 est ouvert"
Beep
End Sub
Ca marche très bien quand j'ouvre ce fichier "à la main", mais le MsgBox ne s'affiche pas quand l'ouverture de "_Modèle2021.xlsm" est commandée par ma macro.
Merci de ton aide
yg_be
Messages postés
22692
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 avril 2024
1 471
29 mai 2021 à 08:39
29 mai 2021 à 08:39
tu ne nous montres pas ce qu'est MonApplication. Le open() que tu as choisi d'utiliser n'est pas le bon choix dans ton cas. Il déclenche l'ouverture de n'importe quel fichier, sans indiquer que c'est un fichier à ouvrir par Excel.
utilise plutôt:
il est également préférable d'éviter d'utiliser "active"
exemple:
utilise plutôt:
workbooks.open()
il est également préférable d'éviter d'utiliser "active"
exemple:
dim wbmod as workbook set wbmod = workbooks.open() wbmod.SaveAs()
5 juin 2021 à 13:42