Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème execution macro n'attends pas la fin de calcul

sebkil28

XLDnaute Nouveau
Bonjour à tous,

Je me prends la tête depuis ce matin sur une macro qui se borne à ne pas attendre la fin d'éxecution de ma comande Application.calculate

Je pensais qu'excel attendrait la fin du calcul (Calcul matricielle pour info) mais la macro continue sont exécution et du coup le résultat que j'attends n'est pas là !

Quelqu'un saurait me dire pourquoi et comment indiquer à excel de finir les calculs avant de continuer ?

extrait de mon code qui est dans un UserForm
Code:
Sub ListBox1_Change()
Set f = Sheets("suivi serie")
Me.ListBox2.Clear
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then 'condition : si l'élément est sélectionné
f.Cells(55, 7) = Me.ListBox1.List(i) 'affiche l'élément dans la première cellule vide (colonne O)
End If 'fin de la condition
Next i
' lancement des calculs matricielle
Application.Calculate

' liste câblage par rapport au train selectionné + suppression des doublons

Set mondico = CreateObject("Scripting.Dictionary")
For Each c In f.Range("harn2")
    mondico(c.Value) = ""
Next c
f.[Q1].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)


' Ajout liste câblage dans listbox2
Dim cel As Range 'déclare la variable cel (CELlule)
 For Each cel In f.Range("harn")
        Me.ListBox2.AddItem cel.Value 'ajoute ;la valeur de la cellule à la ListBox2
    Next cel
f.Range("harn").ClearContents
f.Cells(55, 7).ClearContents
Application.Calculate

' suite de la macro non finalisée
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Problème execution macro n'attends pas la fin de calcul

Bonjour,

essaye peut être ceci :
Code:
With Application
    .Calculate
    Do
        DoEvents
    Loop While .CalculationState <> xlDone
End With

bonne soirée
@+
 

sebkil28

XLDnaute Nouveau
Re : Problème execution macro n'attends pas la fin de calcul

Merci pour vos réponse je vais tester ça demain.
Je pourrais vous faire parvenir mon fichier au besoin mais il fait 700Kb donc par mail éventuellement.

Je vous tiens au courant.
 

sebkil28

XLDnaute Nouveau
Re : Problème execution macro n'attends pas la fin de calcul

Bonjour,

Ca ne fonctionne pas

De ce que j'ai pu observé, lorsque je lance mon calcul avec "Application.Calculate"
dès que je passe à la ligne macro suivante, le calcul s'arrête. Ce n'est donc pas une question de temps de calcul.

J'ai même essayé avec le DoEvents mais lorsque la macro passe à cette ligne, le calcul lancé précédement s'arrête.... On l'observe très bien lorsque que je fais du Pas à Pas, ca marche, mais si je reste appuyé sur F8 ça marche plus.

Y à t-il un moyen autre que de réactiver le calcul automatique sur mon classeur ?

Je sèche et je ne sais plus quoi faire.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…