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

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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…