Temps de calcul des formules
Dans
l’article précédent, nous vous avons proposé cinq formules différentes pour
calculer le nombre d’absences pour cause de maladie.
Afin
de comparer ces cinq solutions, nous avons successivement collé chacune des
cinq formules en C2, puis recopié cette formule vers le bas jusqu’en C500001 et mesuré son temps de calcul. Pour éviter des temps de calcul trop longs, nous nous sommes mis en mode de
calcul manuel, via les options de calcul de l’onglet « Formules ».
Nous
avons ensuite développé la macro suivante, appelée par le bouton macro de la
feuille :
Sub Temps_calcul()
Dim Time As Double
Time = Now()
Calculate
Range("K2") =
Range("Total").Value
Range("Temps") = Now()
- Time
End Sub
Nous
avons reporté les temps de calcul observés en K3 dans le bloc G2:J6. La moyenne
des temps par ligne est reprise en colonne L.
Remarque – Les couleurs des
cellules en D2:D6 nous permettent d’éviter de mal interpréter les résultats de
la colonne C.
Nous
constatons que les formules utilisant sommeprod() et les formules matricielles donnent des résultats assez comparables. Cela prouve que sommeprod se comporte comme une formule
matricielle et n’est donc pas plus performante.
La
seule économie de temps de calcul notable correspond à l’utilisation de la
fonction nb.si.ens() !
3 Commentaire(s):
Bonjour,
Juste une remarque : éviter de donner à une variable le nom "Time" qui est celui d'une fonction intégrée de Visual Basic.
De façon plus générale, personnellement, j'évite de donner à des variables des noms anglo-saxons qui, sauf exception, n'apportent rien à la compréhension du code source et peuvent au contraire prêter à confusion par rapport à des mots-clés de VB.
By cduigou, sur 9:48 AM
Je confirme ce que dit Claude, je travaille dans une société ou l'anglo-saxon est la langue utilisée, et j'ai déjà fait l'erreur : un peu ardu pour trouver le problème...
By Aigle34, sur 8:04 PM
Tout à fait d'accord, les gars. Il aurait été préférable de ne pas appeler ma variable Time !
A ma décharge, cela marchait très bien et du coup je ne m'en étais pas soucié...
By Hervé Thiriez, sur 7:21 AM
Enregistrer un commentaire
<< Accueil