[VBA] Pb dans une formule COUNTIFS

4 réponses
Avatar
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;"=701*";$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,""=701*"",R4C2:R2687C2,R2C3)"

Mon souci est que si je lance :
Formule = "=COUNTIFS(R4C1:R2687C1,""=701*"",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

4 réponses

Avatar
Jacquouille
Bonjour
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
Avatar
MichD
Bonjour,

Tu as essayé comme ceci :

x = Evaluate("COUNTIFS($A$4:$A$2687,""p1*"",$B$4:$B$2687,$C$2)")
Avatar
MichD
Si tu places le code ailleurs que dans le module de la feuille, il est plus prudent d'ajouter le nom de la feuille de calcul
dans l'adressage des plages de cellules

x = Evaluate("COUNTIFS(Feuil1!$A$4:$A$2687,""p1*"",Feuil1!$B$4:$B$2687,Feuil1!$C$2)")
Avatar
HD
Si tu places le code ailleurs que dans le module de la feuille, il est
plus prudent d'ajouter le nom de la feuille de calcul 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