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.
 

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: