[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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jacquouille
Le #26239102
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
MichD
Le #26239092
Bonjour,

Tu as essayé comme ceci :

x = Evaluate("COUNTIFS($A$4:$A$2687,""p1*"",$B$4:$B$2687,$C$2)")
MichD
Le #26239082
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)")
HD
Le #26239642
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
Publicité
Poster une réponse
Anonyme