VBA - Variable à figer dans formule R1C1 ?

Int0x

XLDnaute Occasionnel
Bonjour,

Petite questions sûrement bête.
Je suis en train de faire une macro qui va calculer des sommeprod, délimitées par un nombre de ligne sur un autre onglet.

J'ai donc:
i = Sheets("Calculs").Range("A65000").End(xlUp).Row
et
Sheets("Temps").range("E4").Select

(ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT((Calculs!R11C27:R[+" & i & "]C27=Temps!RC[-2])*(Calculs!R11C25:R[+" & i & "]C25)*(Calculs!R11C3:R[+" & i & "]C3)/(Calculs!R11C8:R[+" & i & "]C8))"

Si je fais un msgbox de i, il me renvoie 705 (qui est la bonne valeur si je regarde sur l'onglet "Calculs").

Le problème, c'est que cette macro m'écrit en E4 (de l'onglet "Temps"):
=SOMMEPROD((Calculs!$AA$11:$AA709=Temps!A4)*(Calculs!$Y$11:$Y709)*(Calculs!$C$11:$C709)/(Calculs!$H$11:$H709))

2 soucis:
- Il me marque $AA709 au lieu de 705
- Il ne me "fige" pas cette valeur (la ligne suivante sera 710, puis 711, etc...)

Voilà ce que j'aurais souhaité:
=SOMMEPROD((Calculs!$AA$11:$AA$705=Temps!A4)*(Calculs!$Y$11:$Y$705)*(Calculs!$C$11:$C$705)/(Calculs!$H$11:$H$705))
Auriez-vous une idée ?
Comment faire pour intégrer une variable i, tout en la figeant dans les R1C1 ?
Par avance merci
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : VBA - Variable à figer dans formule R1C1 ?

Bonjour Int0x, salut Pascal,

En notation A1 la formule est en effet plus compréhensible :

Code:
Dim cel As Range, ad As String, i As Long
Set cel = Sheets("Temps").Range("E4")
ad = cel.Offset(, -2).Address(0, 0)
i = Sheets("Calculs").Range("A65000").End(xlUp).Row
cel.Formula = _
"=SUMPRODUCT((Calculs!AA11:AA" & i & "=Temps!" & ad & ")*Calculs!Y11:Y" & i & "*Calculs!C11:C" & i & "/Calculs!H11:H" & i & ")"
Nota : les signes $ ne sont utiles que si l'on copie/colle la formule.

De plus rappelez-vous que les Select sont à proscrire en VBA...

A+
 

Discussions similaires

Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 203
Messages
2 086 183
Membres
103 152
dernier inscrit
Karibu