Somme de cellules au sein d'une cellule

Signaler
Messages postés
23
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
24 juillet 2012
-
Messages postés
23
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
24 juillet 2012
-
Bonjour le forum,

Je souhaiterais imposer une nouvelle valeur a une cellule qui serait sa valeur actuelle plus la somme des 13 cases précédentes.
Cependant, malgré le code ci dessous, je n'arrive pas a obtenir le résultat attendu et juste la formule écrite dans la cellule cible.

CurrentValue = ws_output.Cells(35, j_output + 1).Value
ws_output.Cells(35, j_output + 1).FormulaR1C1 = "=Sum(R[-13]C:R[-1]C)+CurrentValue"


Merci pour votre aide

2 réponses

Messages postés
32322
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 mai 2021
346
Bonjour,
Je ne pense pas que tu puisses réaliser ce que tu souhaites réaliser ...
Tu es en train de faire une formule avec une référence cyclique.. en gros... tu demandes à une cellule de se recalculer en prenant sa valeur + d'autres valeurs contenues dans des cellules...
A quelle moment doit-elle s'arrêter de compter ? au premier calcul.. ou sinon elle va s'incrémenter à l'infini....

A la rigueur, tu pourrais effectuer le calcul dans la macro puis coller le resultat (et non la formule) dans ta cellule... le tout déclenché par un bouton ou un évenement particulier sur ta feuille...


Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
23
Date d'inscription
mercredi 14 octobre 2009
Statut
Membre
Dernière intervention
24 juillet 2012

Je vois ce que tu veux dire mais c'est possible puisque je vais traiter mes valeur au cas par cas et imposer des nombres et pas uniquement utiliser des variables.
J'ai resolu le probleme a l'aide d'un autre confrere codeur :

Dim i As Integer
CurrentValue = ws_output.Cells(35, j_output + 1).Value
For i = -13 To -1
    CurrentValue = Cells(35, 3).Offset(i, 0) + CurrentValue
Next
ws_output.Cells(35, j_output + 1).Value = CurrentValue


Merci pour ton aide et ton temps

Cordialement