XL 2010 macro : calcul du temps par onglet dans un document

merinos

XLDnaute Accro
Bonjour,

J'ai recu 2 documents super lourds ...

Quand on change une cellule, il faut 45 secondes pour un recalcul.

Donc je desire trouver une macro qui affiche le temps passé par onglet afin de voir où on perds autant de temps .

Quand c'est juste pour un onglet:
VB:
Sub only_sheet()
starttime = Now
ActiveSheet.Calculate
duree = Now - starttime
MsgBox "duree:  " & duree * 100000
End Sub

Je reve d'avoir le resultat dans un onglet ajouté...

Quelqu'un a deja ce type de macro?


Merci,

Merinos
 

pierrejean

XLDnaute Barbatruc
Re

A tester:

Code:
Sub tps()
On Error Resume Next
   Set s = Sheets("Temps")
   If Err.Number <> 0 Then Sheets.Add.Name = "Temps"
On Error GoTo 0
Sheets("Temps").Range("A1") = "Feuille"
Sheets("Temps").Range("B1") = "temps de calcul"
ligne = 2
For Each sh In Sheets
 If sh.Name <> "Temps" Then
  debut = Timer
  sh.Calculate
'  MsgBox ("temps de calcul de la feuille " & sh.Name & "= " & Timer - debut)
  Sheets("Temps").Cells(ligne, 1) = sh.Name
  Sheets("Temps").Cells(ligne, 2) = Timer - debut
  ligne = ligne + 1
End If
Next
End Sub
 

eriiic

XLDnaute Barbatruc
Bonjour,

Pour être plus proche de la réalité je te suggère d'utiliser la méthode .Dirty sur les cellules des feuilles avant le recalcul.
Sinon Excel, qui n'est pas trop bête, ne calcule que ce qui doit l'être : les seules formules dont un antécédent a changé.
Range.Dirty, méthode
Cette méthode désigne une plage qui doit être recalculée lorsque le recalcul suivant se produit.
Syntaxe

expression.Dirty

expression Variable qui représente un objet Range.

Remarques

La méthode Lien supprimé déclenche le recalcul de la plage spécifiée, pour les cellules que Microsoft Excel doit recalculer.

Si l'application est en mode de calcul manuel, l'utilisation de la méthode Dirty indique à Excel d'identifier la cellule spécifiée à recalculer. Si l'application est en mode de calcul automatique, l'utilisation de la méthode Dirty indique à Excel qu'un recalcul doit être effectué.
Tu peux aussi installer RefTreeAnalyser (la version gratuite suffit)
Il a un outil qui fait des stats sur chaque feuille (dont le temps de calcul), mais aussi la possibilité de mesurer le temps sur une plage sélectionnée.
Quand tu as déterminé les feuilles pénalisantes, ça te permet de chercher sur quelles formules accentuer tes efforts d'optimisation.
eric
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87