Application.evaluate et somproduct

thierry.bayard

XLDnaute Junior
Bonjour,

Je cherche à intégrer une fonction sommprod sous Excel via une macro et je ne voudrais avoir que le résultat dans la cellule et non la formule.
J'ai essayer avec application.worksheetfunction => je n'ai pas réussi.
Je tente désormais avec application.evaluate mais je bloque aussi :
- Lorsque je saisie :
Code:
Range("A1").FormulaR1C1 = "=SUMPRODUCT((R1C=INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$I$5:$I$700""))*(INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$F$5:$F$700"")=RC5),INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$K$5:$K$700""))"
ça fonctionne : j'ai la formule dans la cellule avec le bon résultat.

- Lorsque j'essaie :
Code:
Range("A1").Value = Application.Evaluate("=SUMPRODUCT((R1C=INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$I$5:$I$700""))*(INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$F$5:$F$700"")=RC5),INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$K$5:$K$700""))")
Je n'ai plus la formule mais excel me renvoie #valeur.

Voyez-vous d'où peux venir le blocage ?

Merci d'avance pour votre aide

Thierry B
 
G

Guest

Guest
Re : Application.evaluate et somproduct

bonsoir,

avec :
Code:
With Range("A1")
    .FormulaR1C1 = "=SUMPRODUCT((R1C=INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$I$5:$I$700""))*(INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$F$5:$F$700"")=RC5),INDIRECT(""'[""&Fich_N1_act&""]Feuil1'!$K$5:$K$700""))"
    Do While Application.CalculationState <> xlDone: DoEvents: Loop
    .Value = .Value
End With

La ligne qui commene par Do While, n'est là que pour s'assurer que l'application a calculé la formule avant que la ligne suivante fige a valeur.

Elle n'est utile que si la formule prend du temps.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2