SOMME PROD condition égal à une variable

lulu

XLDnaute Nouveau
Bonjour,
Je souhaite réalisé une macro qui calcul le nombre de fax envoyés par mois et par personnes, pour celà j'utilise la fonction somme prod comme suivante :
=SUMPRODUCT((out_spec!R2C2:R10000C2=nomMois!RC2)*(MONTH(out_spec!R2C7:R10000C7)=(Month(Date) - 1))*(out_spec!R2C5:R10000C5))

Ce qui me donne dans la cellule visée celà :
=SOMMEPROD((out_spec!$B$2:$B$10000=nomMois!$B2)*(MOIS(out_spec!$G$2:$G$10000)=(MOIS(Date) - 1))*(out_spec!$E$2:$E$10000))

La colonne B représentant l'ensemble des personnes, G toutes les dates auquelles ont été envoyé les fax et E le nombre de pages envoyées.
Dans ma macro ma variable nomMois est égal à Mars (elle prend la valeur du dernier mois passé), mais lorsque j'éxécute ma macro, ça ne marche pas du tout nomMois ne devient pas Mars et MOIS(Date) - 1 ne se transforme pas en 3 alors si j'affiche ma variable et Month(Date) -1 comme ceci :
MsgBox nomMois
MsgBox Month(Date) - 1
ça m'affiche bien Mars et 3

Comment puis-je faire afin d'obtenir ceci en utilisant la variable nomMois et la fonction Mois(Date) -1 :
=SOMMEPROD((out_spec!$B$2:$B$10000=Mars!$B2)*(MOIS(out_spec!$G$2:$G$10000)=3)*(out_spec!$E$2:$E$10000))
(écrit comme ça dans la cellule visée celà marche parfaitement)

J'espère que j'ai été assez clair bien qu'à vu d'oeil c'est peut être pas si évident
Merci d'avance.
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : SOMME PROD condition égal à une variable

Bonjour lulu,

en formule, la date du jour n'est pas renvoyée par Date mais par la fonction AUJOURDHUI()
d'autre part, si tu est en janvier, MOIS(AUJOURDHUI())-1 te donnera 0 ce qui n'est pas un mois
essaye de mettre MOIS(DATE(Annee(aujourdhui());mois(aujourdhui())-1;1) à la place

Edit : bonjour Philippe :)
 

lulu

XLDnaute Nouveau
Re : SOMME PROD condition égal à une variable

Traitant des données confidentielles il est pas possible de joindre un fichier, c'est pour ça que j'essaye de détailler un maximum mon problème. Dans ma macro nomMois = ChiffreEnNom(Month(Date) - 1), j'ai vérifié ça retourne bien Mars pas de soucis de ce côté là. Mon problème est que d'habitude dans mon code vba dans la formule :
=SUMPRODUCT((out_spec!R2C2:R10000C2=Mars!RC2)*(MONTH(out_spec!R2C7:R10000C7)=3)*(out_spec!R2C5:R10000C5))"
tout marche très bien. Je cherche à remplacer Mars par ma variable nomMois sans que celà plante et 3 par Month(Date) - 1. Mais au lieu de remplacer ma variable nomMois et Month(Date) - 1 par ce quoi ils sont égaux (c'est à dire Mars et 3) ça me met dans la cellule visée cette formule :

SOMMEPROD((out_spec!$B$2:$B$10000=nomMois!$B2)*(MOIS(out_spec!$G$2:$G$10000)=(MOIS(Date) - 1))*(out_spec!$E$2:$E$10000))

alors que j'aurais souhaité avoir ceci :

SOMMEPROD((out_spec!$B$2:$B$10000=Mars!$B2)*(MOIS (out_spec!$G$2:$G$10000)=3)*(out_spec!$E$2:$E$1000 0))

N'y a t'il pas moyen de régler ceci ?
Est-il indispensable de joindre un fichier ? Il vous manque des informations ? Des choses qui ne sont pas clairs ?

edit : merci pour ta réponse tototiti2008, je test ça demain.

Merci d'avance
 
Dernière édition:

lulu

XLDnaute Nouveau
Re : SOMME PROD condition égal à une variable

Bonjour,
Ayant un problème un peu différent mais traitant casiment du même sujet je me permet de reposter un message ici.
Je souhaite désormais dans mon programme, faire en sorte que l'utilisateur n'aie pas besoin d'avoir inclut la feuille out_spec dans son classeur afin que tout fonctionne. Jusque là, les calculs se faisaient sur une autre feuille et se basés sur la feuille out_spec, je souhaiterais faire la même chose mais sans la feuille out_spec dans le classeur inclut.
Pour cela, j'ouvre alors le classeur à l'endroit il se trouve et remplace dans ma formule out_spec par xlBook désigant alors le out_spec, mais celà ne marche pas.
Savez - vous pourquoi ?
Je vous joint ci contre un exemple de mon problème avec la macro en question.

Merci d'avance
 

Pièces jointes

  • Exemple.xls
    25 KB · Affichages: 59
  • Exemple.xls
    25 KB · Affichages: 75
  • Exemple.xls
    25 KB · Affichages: 65

Discussions similaires

Statistiques des forums

Discussions
312 555
Messages
2 089 547
Membres
104 208
dernier inscrit
laura29180