Calcul de la valeur d'une cellule incluant sa propre valeur Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
DGG
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 31 mars 2016
Version d'Excel : 2010 FR

Message par DGG » 31 mars 2016, 21:40

Bonjour,

Je cherche à savoir si il existe une formule permettant la mise à jour de la valeur d'une cellule en incluant dans le calcul la valeur de cette même cellule.
La cellule A1 est un nombre que je vais changer tous les mois
La cellule A2 est la somme de toutes les cellules A1 (de ce mois, du mois prochain etc.)
Je souhaiterais que la cellule A2 calcule sa nouvelle valeur (A2+A1) quand je modifie la cellule A1 chaque mois.
Mais je ne veux pas que figure tous les montants A1 de chaque mois sur mon tableau, seulement celui du mois en cours (sinon ce serait trop simple :lol:

A votre disposition si ma demande n'est pas assez claire, je vous remercie par avance pour votre aide !
DéGéGé
F
FINDRH
Membre impliqué
Membre impliqué
Messages : 1'404
Appréciations reçues : 15
Inscrit le : 12 février 2010
Version d'Excel : 2016

Message par FINDRH » 31 mars 2016, 21:49

Bonsoir

ci joint une proposition de solution, avec une formule a ajuster a chaque nouvel onglet

=somme(feuil1:feuil2!a1)

Cordialement

FINDRH
Somme cellule.xlsx
(9.87 Kio) Téléchargé 25 fois
Avatar du membre
DGG
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 31 mars 2016
Version d'Excel : 2010 FR

Message par DGG » 31 mars 2016, 21:52

Bonsoir et merci pour cette réponse rapide !
C'est en effet efficace de prévoir plusieurs onglets, j'aurais bien évité d'en créer 12 pourtant (car 1 par mois).
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 31 mars 2016, 21:57

Bonsoir,

Que VBA pour faire ça facilement : procédure évènementielle Worksheet_Change dans le module de la feuille concernée :
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Range("A2") = Range("A2") + Range("A1")
End Sub
Codialement.
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 6'674
Appréciations reçues : 322
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 31 mars 2016, 22:09

Bonsoir,

une astuce sur ce site :
http://forum.excel-pratique.com/cours-a ... 46879.html

et fichier joint modifié dans ce cas :
LouReeD.xlsx
(8.49 Kio) Téléchargé 25 fois
@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
Avatar du membre
DGG
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 31 mars 2016
Version d'Excel : 2010 FR

Message par DGG » 1 avril 2016, 17:18

Bonjour à tous et merci pour vos différentes réponses,

Mauvaise nouvelle : la valeur de ma cellule va devoir changer toutes les semaines (et pas tous les mois), donc je ne vais pas faire un tableau avec autant d'onglets. Je me permets de vous joindre mon tableau c'est plus facile à expliquer et je suis surpris qu'il n'y a pas une solution simple.

En résumé, je cherche à faire en sorte que les cellules E5 à E9 se mettent à jour quand j'aurais rempli les cellules B5 à B9...

Merci encore pour votre aide et bonne journée !
Tableau COUCOU.xlsx
(12.58 Kio) Téléchargé 18 fois
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 6'674
Appréciations reçues : 322
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 1 avril 2016, 21:22

Bonsoir,

si cela ne gène pas le reste du classeur la solution apportée deux posts plus est très simple...
Voir le fichier joint :
Tableau COUCOU_LouReeD.xlsx
(12.23 Kio) Téléchargé 21 fois
Attention pas de [F9] ! Sinon l'incrémentation continue !!!

En somme la réponse de MFerrand est la meilleur.

@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 1 avril 2016, 22:23

Salut LouReed !
Salut DGG !
je suis surpris qu'il n'y a pas une solution simple
Tu ne peux pas dire ça ! Tu te rends vite compte que si tu impliques le résultat d'un calcul dans le calcul lui-même, tu génères une boucle infinie, qui plantera lorsque tes ressources diront "Stop ! on peut plus."
On ne peut régler ce genre de chose que par un positionnement externe au calcul effectué.

Tu as eu des solutions. Pour ma part, je ne prendrais pas le risque d'utiliser les itérations... Ma solution est plus traditionnelle...

Cordialement.
Avatar du membre
LouReeD
Contributeur
Contributeur
Messages : 6'674
Appréciations reçues : 322
Inscrit le : 14 octobre 2014
Version d'Excel : 2013 FR, 2016 FR
Contact :
Téléchargements : Mes applications

Message par LouReeD » 1 avril 2016, 22:57

MFerrand, on est bien d'accord ! :lol:

LouReeD à dit :
En somme la réponse de MFerrand est la meilleur.
MFerrand a dit :
Pour ma part, je ne prendrais pas le risque d'utiliser les itérations... Ma solution est plus traditionnelle...
Alors DGG, en retirant vos lunettes de soleil ( :mrgreen: ) peut-être verrez vous le code événementiel de MFerrand :
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then Range("A2") = Range("A2") + Range("A1")
End Sub
@ bientôt

LouReeD
Quelques règles à lire ICI ;;)
______________________________________________________Vous pouvez allez faire un tour sur : Index de "Mes applications" ;;)
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'171
Appréciations reçues : 446
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 1 avril 2016, 23:39

J'avais lu LouReed...

On peut écrire en VBA : a = a + b
mais pas avec une formule.
C'est une solution simple ! Il faut juste prendre soin de border sa zone d'application.

Bye !
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message