Attendre la fin de calcul en VBA

  • Initiateur de la discussion Domic
  • Date de début
D

Domic

Guest
Bonjour à tous,
Je sollicite votre aide pour un petit problème de patience d'excel.

Je m'explique, je souhaiterai que lors du transfert de donnée d'un fichier A vers un fichier B excel attende la fin du calcul automatique du fichier B pour continuer à trasferer des données, car la position des données dans le fichier B est déterminé par une série de calcul suite à un premier transfert de donnée.

Actuellement le fichier B est mode de calcul manuel, dans la macro j'active le calcul automatique, le calcul se lance, mais la macro continue et me renvoie une erreur car le calcul n'étant pas terminer, certaine valeurs de position de donné sont erroné.
J'ai bien utilisé un wait, mais le temps de calcul étant variable le résutat n'est pas excelent.

Je souhaiterai savoir aussi ou récuperer l'information du pourcentage d'avancement du calcul pour l'integrer à un progressbar.

Mille merci par avance de votre aide.

Domic
 
Y

yeahou

Guest
Bonjour Domic, le forum

Activer le calcul automatique n'est qu'un changement de propriété ne déclenchant pas le calcul, celui ci reste indépendant et c'est le changement de propriété qui fait que le calcul peut se déclencher de lui même mais n'est pas lié à l'exécution du code en cours. Essaie plutôt de lancer directement le calcul dans ta macro. Logiquement, la macro devra attendre la fin du traitement de l'instruction avant de continuer.

Cordialement, A+

'lance le calcul de tous les classeurs ouverts
Application.Calculate

'calcule la feuille 1 du classeur actif
ActiveWorkbook.Worksheets(1).Calculate

'calcule un classeur particulier
For Each feuille In Workbooks("nomclasseur").Worksheets
feuille.Calculate
Next feuille
 
D

Domic

Guest
Bonjour yeahou, le forum

merci pour cette info, la macro attend bien la fin du calcul, et en regardant de plus près, il existe la commande Application.CalculateFullRebuild qui recalcul l'ensemble des classeurs ouvert.

Encore merci,

pas d'idée pour la seconde question?

Domic.
 
D

Domic

Guest
Bonjour Michel_M, re-bonjour le forum, Yeahou

mon soucis n'est pas de créer une progressbar, j'y suis arrivé aprés avoir écumer la centrale de téléchargement et celle d'autre site pour réaliser ce que je souhaitais.

mon soucis est de récuperer l'information de progression du calcul pour l'afficher dans un userform de façon à ce que l'utilisateur ne pense pas que l'appli soit planté car le traitement Application.CalculateFullRebuild prend entre 10s et 3 minutes.

Encore Merci

Domic
 

Discussions similaires

Réponses
3
Affichages
249

Statistiques des forums

Discussions
312 506
Messages
2 089 109
Membres
104 037
dernier inscrit
damsau