Fonction Evaluate en VBA

Bonjour,

Bonjour Dan, si tu es présent.

Ce sujet est en rapport avec le sujet :

https://forum.excel-pratique.com/excel/formule-excel-des-clients-perdus-t43595.html

Pour optimiser un code, je souhaiterai pouvoir utiliser la fonction 'Evaluate'.

Dans la procédure existante, on effectue le calcul et cela prend un temps important (le fichier joint est allégé, mais on peut estimer le nombre de lignes à traiter à +/- 80.000 lignes. Le calcul demandé est de trouver la première date et la dernière de commande.

Ci-dessous le code utilisé et donc la formule que je voudrai 'évaluer'. Car, je calcule pour ensuite effacer les formules.

For i = 4 To Derligne
        Cells(i, 7).FormulaArray = "=MIN(IF(CT_NUM=RC[-6],DO_DATE))"
        Cells(i, 8).FormulaArray = "=MAX(IF(CT_NUM=RC[-7],DO_DATE))"
        Cells(i, 9) = Date - Cells(i, 8)
        Range(Cells(4, 7), Cells(Derligne, 9)) = Range(Cells(4, 7), Cells(Derligne, 9)).Value
    Next

A vous relire avec une réponse satisfaisante

Cdlt

Bonjour

Je ne sais pas mais il me semble (mémoire) que Evaluate interprète les formules en matricielle

Essayes comme ceci

  For I = 4 To DerLigne
    Cells(I, 7) = Evaluate("MIN(IF(CT_NUM=A" & I & ",DO_DATE))")
    Cells(I, 8) = Evaluate("MAX(IF(CT_NUM=A" & I & ",DO_DATE))")
    Next

Bonjour,

Merci Banzai64.

J'ai toujours un mal fou à conjuguer les ", &, etc... dans les formules

Je pensais gagner un peu de temps, mais l'inverse se produit avec l'utilisation de 'Evaluate'.

Cdlt

Bonjour

C'est sur qu'au lancement de la macro tu vas perdre du temps mais une fois les calculs faits il n'y aura plus de recalcul

Dans le programme tu fais le calcul sur chaque ligne

Ce que je ferais (mais je n'ai pas la science infuse)

  Range("G4").FormulaArray = "=MIN(IF(CT_NUM=A4,DO_DATE))"
  Range("H4").FormulaArray = "=MAX(IF(CT_NUM=A4,DO_DATE))"
  Range("G4:H4").AutoFill Range("G4:H" & DerLigne), xlFillSeries
  Range("G4:H" & DerLigne).Value = Range("G4:H" & DerLigne).Value

A tester si c'est + ou - rapide

Rechercher des sujets similaires à "fonction evaluate vba"