-
formule ou value
Bonjour,
Je ne comprends pas la différence entre :
Code:
range("la cellule").formula = "=D4/E4"
Code:
range("la cellule").value = "=D4/E4"
De plus lorsque je tente d'insérer la fonction excel "=somme(A4:E4)", j'ai une erreur de redondance, mais uniquement si je l'applique avec une macro.
De plus si j'utilise uniquement des "cells", comment puis je faire pour intégrer une formule sans taper les cellules. Je m'explique.
Code:
cells(5,1) = "=d4/e4"
Je suis embêté de remettre les cellules !
Avez vous des idées ?
-
Salut,
La différence avec ton exemple ne saute pas aux yeux, mais avec la solution tu comprendra pourquoi il faut indiquer quelle type de formule on place dans la cellule...
Pour avoir les cellules source de ta formule, utilise le principe de formulaR1C1.
Ca fonctionne par référence à la cellule dans laquelle se trouve la formule.
Dans ton exemple, A5 = D4/E4, soit pour D4, une ligne en moins et trois colonne à droite et pour E4 une ligne en moins et 4 colonnes à droite.
R représente la ligne (row) et C la colonne (column) si rein n'est indiqué après R, c'est qu'on est sur la même ligne, si il y a des [] on parle d'une formule relative (donc pas de *)
Donc pour ton exemple, la formule donne:
Code:
Cells(5, 1).FormulaR1C1 = "=R[-1]C[3]/R[-1]C[4]"
A+
-
Salut stmastma et le forum
La propriété de base de Range, ou Cells (ou [...]) est Value
Que tu écrives Range("A1"), Range("A1").value, Cells(1,"A") ou Cells(1,"A").value, ces écritures donnera la valeur de la cellule A1
Code:
range("la cellule").value = "=D4/E4"
Fonctionne, parce que seuls des opérateurs simples sont utilisés. Mais la bonne écriture explique à Excel que ce n'est pas une valeur, mais une formule.
C'est pour ça que "=somme(A4:E4)" déclenche une erreur.
La bonne formulation doit indiquer à Excel que c'est une formule, et en français.
Code:
range("la cellule").FormulaLocal = "=somme(A4:E4)"
donnera le bon résultat.
A+