VBA activeWorkbook.refreshall puis lancer la macro suivante

Résolu/Fermé
Goth!er Messages postés 15 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 25 avril 2018 - 22 nov. 2016 à 11:43
Goth!er Messages postés 15 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 25 avril 2018 - 23 nov. 2016 à 13:49
Bonjour tout le monde,

Je souhaiterai via un bouton appeler plusieur macros.
Jusque là pas de soucis.
si ce n'est qu'une de mes macro est en fait une mise à jour des données web.

ActiveWorkbook.Refreshall

Je souhaiterai que les macros se lance dans une séquence précise .
Sub callmaj()
Call Miseajour
Call retourinitial
Call messauver
End sub


dans le cas précis , Call Miseajour =ActiveWorkbook.Refreshall

l'appel de retourinitial n'attend pas la fin de la mise a jour pour se lancer, hors l'application de cette macro n'a de sens précisement qu'après la mise à jour.

messauver est juste une msgbox informant que la mise a jour est ok et proposant la sauvegarde (comme cela je suis complet :-))

Quelqu'un aurait une idée pour que l'appel retourinitial se fasse une fois la mise à jour terminée?

Merci .

1 réponse

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
Modifié par eriiic le 22/11/2016 à 11:54
Bonjour,

supervise par un ontime toutes les secondes (ou autre technique) une cellule dont tu es sûr qu'elle doit changer pour lancer la suite, ou bien si tu es sûr qu'une tempo de 2s par exemple est suffisante lance la suite par un ontime 2s plus tard.
eric


En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
Goth!er Messages postés 15 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 25 avril 2018
Modifié par Goth!er le 22/11/2016 à 12:05
Bonjour eriiic,

Merci pour ta réponse, je suis moyen chaud pour cette idée ... le fichier est destiné à différents utilisateurs, qui peuvent charger des bases de données sensiblement différentes, ce qui peux mettre entre 2 min et 15 min selon l'usager pour la màj.

J'ai tenté le DoEvents qui n'a pas fonctionné non plus.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
22 nov. 2016 à 12:13
il y avait 2 propositions.
Voit si la 1ère est réalisable.
0
Goth!er Messages postés 15 Date d'inscription jeudi 10 novembre 2016 Statut Membre Dernière intervention 25 avril 2018
23 nov. 2016 à 13:49
Bonjour,
cela ne fonctionne pas, j'ai trouvé une partie de solution en désactivant l'option "background refresh" de mes imports , le hic c'est qu'a partir du 100eme import l'option se recoche automatiquement !?#
Je cherche donc un code VBA pour désactiver l'option "background refgresh" de toutes mes connections.

Une idée?
0