Sélection d'une cellule selon indice sous vba

Résolu/Fermé
enjibenji - 25 nov. 2011 à 21:04
 enjibenji - 27 nov. 2011 à 17:20
Bonjour,

Je conçois un algorithme en vba au travers duquel j'édite des formules de calcul de ma feuille sur laquelle j'applique l'algorithme.
Mon problème est que ces formules font appel à des étendus de cellules qui dépendent d'un indice.
Un exemple devrait vous éclairer plus sur mon problème :
Je veux que la cellule(1,1) soit la somme des cellules (1,2) à (1,i) où i est un indice dont la valeur est variable, mais je cherche à ce que la formule soit ensuite inscrite dans la formule de la cellule (1,1), par exemple avec i qui vaudrait 3, on aurait : "=sum(A2:A3)".

Pour se faire, j'avais pensé à l'écriture suivante, qui ne fonctionne malheureusement pas :
Range(Cells(1, 1)).Select
Cells(1, 1 + i).FormulaR1C1 = "=SUM(R[2]C:R[i]C)"

J'ai essayé différentes idées qui ne fonctionnent pas, je pense, que je me complique la vie et qu'il y a un moyen simple de désigner une cellule.
Donc si quelqu'un est en mesure de m'aider, je lui en serais extrêmement reconnaissant.

A voir également:

2 réponses

Bonjour,

tu peux essayer ceci:
MaFormule = "=SUM(R[2]C:R[" & i & "]C)
Cells(1, 1 + i).FormulaR1C1 =  MaFormule

Bonne suite
0
Merci Paf,


Ton écriture fonctionne parfaitement !
Mais du coup, j'aimerais aller un peu plus loin. Je passe par l'écriture "R[]C[]" parce qu'il me semblait plus approprié pour les indices, mais n'y a t-il un moyen pour passer directement par la désignation de type "A1" des cellules ?

J'ai essayé :
MaFormule = "=SUM(A9:A" & 8 + i & ")"
Cells(8, 1).FormulaR1C1 = MaFormule

Mais ça ne fonctionne pas, excel écrit ça à la place dans la cellule :
=SOMME( 'A9': 'A10')
Et n'arrive donc pas à lire la somme...

Merci d'avance !
0
re
si tu utilises FormulaR1C1 tu dois utiliser une formule de ce type "=SUM(R[2]C:R[i]C)" ( de type Rangée, Colonne)

si tu veux utiliser une formule avec plage, utilise Formula:
MaFormule = "=SUM(A9:A" & 8 + i & ")"
Cells(8, 1).Formula = MaFormule 

Bonne suite
0
Merci.

Je début en vba, et comme tout débutant, j'essaye de griller les étapes. En tout cas merci de m'avoir orienté.
0