Bonjour,

J'ai essayé plusieurs méthode mais aucune ne semble marcher. J'en viens a utiliser " Application.Wait Time + TimeSerial(0, 0, 20) " pour laisser le temps au données de charger mais vous comprendrez le problème de ce bricolage.

=> ActiveSheet.Calculate seul ne marche pas

=> j'ai aussi essayé If Not Application.CalculationState = xlDone Then DoEvents End If mais ca ne change rien

Ma feuille est en calcul manuel et a chaque itération la feuille doit charger une nouvelle plage de données dont la source provient d'un add in. Lorsque que la donnée charge dans la cellule il y a marqué : "process..."

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
 
 
Sub ExVL()
 
With Sheets("P_Auto")
 
i = 2
    Do While Cells(i, 2) <> ""
    Cells(i, 2).Copy Cells(3, 5)
 
    ActiveSheet.Calculate
    Application.Wait Time + TimeSerial(0, 0, 20)
    If Not Application.CalculationState = xlDone Then
    DoEvents
    End If
    Debug.Print "Calculs chargés pour période" & i - 1
 
    Cells(5, 8).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    If TypeName(Selection) = "Range" Then Selection.Calculate
    DoEvents
 
    If IsEmpty(Sheets("PZ").Range("A1")) Then
 
        Selection.Copy Sheets("PZ").Range("A1")
 
    Else: Selection.Copy Sheets("PZ").Cells(Rows.Count, 1).End(xlUp)(2)
 
    End If
 
 
    i = i + 1
    Loop
 
End With
 
 
End Sub

Nom : Exemple1.PNG
Affichages : 344
Taille : 48,7 Ko



Des pistes ? Merci.