Bonjour,

J'utilise la fonction SOMMEPROD pour retrouver des valeurs dans un tableau.
Colonne A : noms
Colonne B : numéro semaine
Colonne C : activité
Colonne D : résultat

en H2, j'ai mis la formule
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=SOMMEPROD(($A$2:$A$1791=$F2)*($B$2:$B$1791=H$1)*($C$2:$C$1791=$G2)*($D$2:$D$1791))
Grâce à l'assistant, j'ai transcris ma formule en VBA
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Range("H2").Select
    ActiveCell.FormulaR1C1 = _
        "=SUMPRODUCT((R2C[-7]:R1791C[-7]=RC[-2])*(R2C[-6]:R1791C[-6]=R1C)*(R2C[-5]:R1791C[-5]=RC[-1])*(R2C[-4]:R1791C[-4]))"
    Range("H3").Select
Mon souci est que suivant les semaines, j'ai des données qui changent (=1791 peut devenir 1980 par exemple), et étant donné que SOMMEPROD ne fonctionne pas avec des cellules vides, je suis "obligé" de chercher la dernière ligne à chaque fois pour adapter ma formule.

J'ai donc fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
dernierevaleur = Sheets("Totaux").Range("a2").End(xlDown).Row
 
    Range(Cells(2, position), Cells(2, position)).Select
   ActiveCell.FormulaR1C1 = _
        "=SUMPRODUCT((R2C[-7]:R & dernierevaleur & C[-7]=RC[-2])*(R2C[-6]:R & dernierevaleur & C[-6]=R1C)*(R2C[-5]:R & dernierevaleur & C[-5]=RC[-1])*(R2C[-4]:R & dernierevaleur & C[-4]))"
Mais ça ne fonctionne pas....: lorsque ma formule est recopiée, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
=SOMMEPROD((V$2:2:2 & dernierevaleur & V:V=AA2)*(W$2:2:2 & dernierevaleur & W:W=AC$1)*(X$2:2:2 & dernierevaleur & X:X=AB2)*(Y$2:2:2 & dernierevaleur & Y:Y))
= il prend "dernierevaleur" comme un texte.....

Une solution, une idée ?

Merci

A+