[VBA] Pb dans une formule COUNTIFS
Le
HD

Bonjour,
Je souhaite exécuter une formule Excel via evaluate afin d'en avoir le
résultat.
J'utilise pour cela la formule Excel NB.SI.ENS. J'ai tapé une formule
dans une cellule, elle fonctionne. J'ai :
=NB.SI.ENS($A$4:$A$2687;"p1*";$B$4:$B$2687;$C$2)
Cette formule fonctionne bien et me retourne 5 ce qui correspond bien au
nombre d'éléments correspondant à mes 2 critères.
lorsque j'enregistre une macro et que je clique dans la cellule
j'obtiens la formule:
ActiveCell.FormulaR1C1 =
"=COUNTIFS(R4C1:R2687C1,""p1*"",R4C2:R2687C2,R2C3)"
Mon souci est que si je lance :
Formule = "=COUNTIFS(R4C1:R2687C1,""p1*"",R4C2:R2687C2,R2C3)"
MsgBox Evaluate(Formule)
Je n'ai alors rien du tout La fonction Evaluate n'accepte pas du tout
cette formule qui provient pourtant d'Excel puisque retranscrite par
Excel lors d'un enregistrement de macro. Je n'ai même pas un message
d'erreur alors que dans ma macro je n'ai pas de On error resume next
Avez vous une idée de où provient le problème ?
Merci d'avance pour votre aide,
Cordialement,
HD
Je souhaite exécuter une formule Excel via evaluate afin d'en avoir le
résultat.
J'utilise pour cela la formule Excel NB.SI.ENS. J'ai tapé une formule
dans une cellule, elle fonctionne. J'ai :
=NB.SI.ENS($A$4:$A$2687;"p1*";$B$4:$B$2687;$C$2)
Cette formule fonctionne bien et me retourne 5 ce qui correspond bien au
nombre d'éléments correspondant à mes 2 critères.
lorsque j'enregistre une macro et que je clique dans la cellule
j'obtiens la formule:
ActiveCell.FormulaR1C1 =
"=COUNTIFS(R4C1:R2687C1,""p1*"",R4C2:R2687C2,R2C3)"
Mon souci est que si je lance :
Formule = "=COUNTIFS(R4C1:R2687C1,""p1*"",R4C2:R2687C2,R2C3)"
MsgBox Evaluate(Formule)
Je n'ai alors rien du tout La fonction Evaluate n'accepte pas du tout
cette formule qui provient pourtant d'Excel puisque retranscrite par
Excel lors d'un enregistrement de macro. Je n'ai même pas un message
d'erreur alors que dans ma macro je n'ai pas de On error resume next
Avez vous une idée de où provient le problème ?
Merci d'avance pour votre aide,
Cordialement,
HD
NB.SI.ENS est déjà trop moderne pour mon PC...
Cependant, pour te dépanner, tu peux employer NB.SI ou Sommeprod et voir
s'il y a erreur ou pas.
Jacquouille
" Le vin est au repas ce que le parfum est à la femme."
"HD" a écrit dans le message de groupe de discussion :
lp39g9$g6m$
Bonjour,
Je souhaite exécuter une formule Excel via evaluate afin d'en avoir le
résultat.
J'utilise pour cela la formule Excel NB.SI.ENS. J'ai tapé une formule
dans une cellule, elle fonctionne. J'ai :
=NB.SI.ENS($A$4:$A$2687;"p1*";$B$4:$B$2687;$C$2)
Cette formule fonctionne bien et me retourne 5 ce qui correspond bien au
nombre d'éléments correspondant à mes 2 critères.
lorsque j'enregistre une macro et que je clique dans la cellule
j'obtiens la formule:
ActiveCell.FormulaR1C1 "=COUNTIFS(R4C1:R2687C1,""p1*"",R4C2:R2687C2,R2C3)"
Mon souci est que si je lance :
Formule = "=COUNTIFS(R4C1:R2687C1,""p1*"",R4C2:R2687C2,R2C3)"
MsgBox Evaluate(Formule)
Je n'ai alors rien du tout... La fonction Evaluate n'accepte pas du tout
cette formule qui provient pourtant d'Excel puisque retranscrite par
Excel lors d'un enregistrement de macro. Je n'ai même pas un message
d'erreur alors que dans ma macro je n'ai pas de On error resume next...
Avez vous une idée de où provient le problème ?
Merci d'avance pour votre aide,
Cordialement,
HD
---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Tu as essayé comme ceci :
x = Evaluate("COUNTIFS($A$4:$A$2687,""p1*"",$B$4:$B$2687,$C$2)")
dans l'adressage des plages de cellules
x = Evaluate("COUNTIFS(Feuil1!$A$4:$A$2687,""p1*"",Feuil1!$B$4:$B$2687,Feuil1!$C$2)")
Un grand MERCI à vous. Cela fonctionne bien.
@+
HD