Attendre jusqu'à ce que l'Application.Calculer a terminé

puis-je forcer mon script vba pour attendre jusqu'à ce que l'Application.Calculer a fini de recalculer toutes les formules?

21
demandé sur WendiKidd 2012-06-30 23:30:21

2 réponses

suite à mes commentaires, vous pouvez utiliser DoEvents avec le Application.CalculationState. Voir cet exemple

Application.Calculate
If Not Application.CalculationState = xlDone Then
    DoEvents
End If
'~~> Rest of the code.

si vous voulez vous pouvez aussi utiliser un Do While Loop à vérifier Application.CalculationState

je recommande également de voir ce lien

thème: Demande.Calculationpropriété De L'État

Lien: http://msdn.microsoft.com/en-us/library/bb220901%28v=office.12%29.aspx

citation tirée de ce qui précède Lien

renvoie une constante XlCalculationState qui indique l'état de calcul de l'application, pour tous les calculs effectués dans Microsoft Excel. En lecture seule.

29
répondu Siddharth Rout 2012-06-30 19:48:29

j'ai utilisé le code pour résoudre un problème où une boucle de calcul se bloque à mi-chemin. J'ai pensé que c'était peut-être parce qu'il avait besoin d'attendre jusqu'à ce que le calcul soit complet avant de saisir la prochaine série de valeurs. Quand j'ai inséré la Demande.Calcul du code, Problème résolu. La boucle s'exécute maintenant à la fin.

0
répondu breynolds 2016-07-22 20:32:34