syntaxe Sommeprod en VBA

sangarmatha

XLDnaute Junior
Bonjour,
J'ai besoin de coller par macro la formule ci-dessous dans une cellule,
=SI(SOMMEPROD(($B$2:$B2=$B2)*($D$2:$D2=$D2))>1;"";1))"

$ n'étant pas reconnu la macro générée (ci-dessous) ne fonctionne pas

Range("J2").Select
ActiveCell.FormulaR1C1 = _
"=IF(SUMPRODUCT((RC2:RC2=RC2)*(RC4:RC4=RC4))>1,"""",1))"

Merci d'avance de votre aide
 

sangarmatha

XLDnaute Junior
Merci j'ai essayé cela mais quand je "tire" ma première formule vers le bas, elle évolue disons comme souhaité sauf que celle avec le R2C2 non

ma formule:
=SI(SOMMEPROD(($B$2:$B2=$B2)*($D$2:$D2=$D2))>1;"";1)
=SI(SOMMEPROD(($B$2:$B3=$B3)*($D$2:$D3=$D3))>1;"";1)
=SI(SOMMEPROD(($B$2:$B4=$B4)*($D$2:$D4=$D4))>1;"";1)

Celle avec les R2C2.... ne change pas donc ne fait pas le job
=IF(SUMPRODUCT((R2C2:RC2=RC2)*(R2C4:RC4=RC4))>1,"""",1)

c'est la "transposition" du signe $ qui me manque...
Merci pour l'aide
 

Dranreb

XLDnaute Barbatruc
Cette instruction doit mettre ces formules :
VB:
Range("J2:J4").FormulaR1C1 = _
"=IF(SUMPRODUCT((R2C2:RC2=RC2)*(R2C4:RC4=RC4))>1,"""",1))"
La ligne absolue s'indique en mettant le numéro de ligne fixe derrère R
Ça a exactement pour effet de mettre un $ devant ce numéro de ligne en notation A1.
La ligne relative s'indique en mettant entre crochets droits le nombre de lignes qui sépare la ligne voulue de celle de la formule, sauf si c'est la même ligne, auquel cas on n'indique rien du tout.
Votre formule semble déterminer s'il existe déjà une combinaison de valeur en B et D dans les lignes 2 à celle de la formule. Elles doivent donc bien toutes commencer par la même ligne $2 en notation A1, donc R2 en notation R1C1.
 
Dernière édition:

Statistiques des forums

Discussions
312 072
Messages
2 085 056
Membres
102 768
dernier inscrit
clem135164