Sélection d'une cellule selon indice sous vba

Résolu
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.

2 réponses

  1. Bonjour,

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

    Bonne suite
    1. 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 !
      1. 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
      2. 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é.