Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

WorksheetFunction.sumproduct

Doridant

XLDnaute Nouveau
Bonjour, voici ma procédure :

Sheets("Graphiques_FP").Activate

Range("Y27").Value = Year(Now())
Range("Y28").Value = Year(Now()) + 1
Range("Y29").Value = Year(Now()) + 2
Range("Y30").Value = Year(Now()) + 3
Range("Y31").Value = Year(Now()) + 4
Range("Y32").Value = Year(Now()) + 5

dernligne = Sheets("Données_Fi_FP").Range("I" & Rows.Count).End(xlUp).Row

Range("Z32").Value = Application.WorksheetFunction.SumProduct((Year(Sheets("Données_Fi_FP").Range("K11:K" & dernligne)) = 2020) * Sheets("Données_Fi_FP").Range("H11:H" & dernligne))

Range("Z32").Value = Application.WorksheetFunction.SumProduct((Year(Sheets("Données_Fi_FP").Range("K11:K" & dernligne)) = 2023) * Sheets("Données_Fi_FP").Range("H11:H" & dernligne))

Range("Z33").Value = Application.WorksheetFunction.SumIf(Sheets("Données_Fi_FP").Range("K11:K" & dernligne), "", Sheets("Données_Fi_FP").Range("H11:H" & dernligne))


Le sumif marche parfaitement bien mais pas du tout le sumproduct
Quelqu'un a t-il une idée ?

Merci beaucoup par avance.

Cordialement.
 

Doridant

XLDnaute Nouveau
Je ne peux pas soucis de confidentialité.
Mais en excel, la fonction marche parfaitement mais passé en vba cela ne fonctionne plus.
En excel, cela donne : =SOMMEPROD((ANNEE(Données_Fi_FP!K11:K55)=2020)*(Données_Fi_FP!H11:H55))
 

gosselien

XLDnaute Barbatruc
Pas sur mon pc donc mais vite regardé, c'est le boxon ton truc , tu parles des colonne Y27-28-29 et colonnes K ou H et là on est en plein tableau !

Je laisse à des plus patients et futés le soin de te résoudre ça

P.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Suggestion: Utilisez Evaluate.
En invoquant la fonction SumProduct proprement dite vous ne pouvez de toute façon pas bénéficier de l'évaluation implicite préalable d'une expression spécifiée en argument comme vous le pouvez dans une formule.
J'estime d'ailleurs que votre formule du #5 n'est pas franchement correcte. Il faudrait :
Code:
=SOMMEPROD(N(ANNEE(Données_Fi_FP!K11:K55)=2020);Données_Fi_FP!H11:H55)
Laissez quand même un peu de travail à la fonction SOMMEPROD que diable ! Avec votre formule c'est l'évaluation de l'expression servant de paramètre unique qui fait tout le boulot ! SOMMEPROD, lui, avec ce qu'il reçoit finalement comme paramètre préalablement évalué, en est réduit à ne faire qu'une simple somme dans ce cas.
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…