[EXCEL] Somme de cellules

Résolu/Fermé
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
- 3 févr. 2011 à 20:01
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
- 6 févr. 2011 à 13:21
Bonjour,

Je suis actuellement en train de chercher comment on pourrait faire une somme de cellules.

La première entrée est invariable. Mais la deuxième non.

Exemple :

A1 = 2
B1= Somme précédentes >> B1 = 2

INSERTION D'UNE LIGNE

A1 = 2 (pas de changements)
B1 = 2 (Nouvelle entrée)
C1 = Somme précédentes >> C1 = 4

Et ainsi de suite ...


Donc, A1 reste toujours. J'ai essayé =Somme(A1:ActiveCell)

Mais ça ne semble pas fonctionner. Vais-je devoir le faire par VBA ?

Merci




14 réponses

dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
3 févr. 2011 à 21:57
Re,

C'est COLONNE()-1 qui règle le début de la plage, donc il faut COLONNE()-3 :

=SOMME(INDIRECT("LC(-"&COLONNE()-3&"):LC(-1)";FAUX))
2
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
Modifié par dobo69 le 3/02/2011 à 21:43
bonsoir,

Dans le cas d'une insertion de colonne, la formule ci-dessous permet de toujours faire la somme des cellules situées à gauche, même après avoir inséré une colonne "juste avant" :

=SOMME(INDIRECT("LC(-"&COLONNE()-1&"):LC(-1)";FAUX))

exemple, lorsqu'on est en G1, la formule renvoie la somme A1:F1.
Si on insère une colonne entre F et G, elle renvoie la somme de A1:G1

Si vous n'avez besoin de rien, demandez-moi.
1
Gord21
Messages postés
918
Date d'inscription
samedi 21 novembre 2009
Statut
Membre
Dernière intervention
20 mars 2013
287
3 févr. 2011 à 20:21
Bonjour,
Si j'ai bien saisi, en B1 tu inscris :
=SOMME($A$1:B1)

Puis tu copies en C1, D1, ...

@+
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 21:30
Bonsoir,

Non, en fait, c'est une macro qui me permet d'ajouter une colonne devant la colonne sélectionnée.

Mais si je rajoute une colonne entre A1 et B1, B1 devient C1, et donc, ce qui est inscrit dans B1 va dans C1. Mais comment faire pour qu'il prenne désormais en compte B1 dans la somme ?


Adrien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 21:52
Bonsoir,

Fonctionne parfaitement, merci.

Mais si je veux qu'elle ne prenne pas en compte les deux premières colonnes (intitulés), je dois indiquer un offset quelque part ?


Merci
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 21:59
Bonsoir,

Merci, impeccable.

Adrien
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 22:05
Euuh, par contre, pour l'offset vertical, on fait comment ?

Merci

0
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
3 févr. 2011 à 22:11
plus simple :

=SOMME(INDIRECT("A1:A"&LIGNE()-1))

pour ne prendre en compte les 2 1°lignes :

=SOMME(INDIRECT("A3:A"&LIGNE()-1))
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 22:53
Bonsoir,

La "plus simple" ne fonctionne pas.

0
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
3 févr. 2011 à 23:01
c'est à dire ?
je n'ai peut etre pas compris ce que signifiait "l'offset vertical"...
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 23:03
Reprendre dans cette même cellule la même formule pour la ligne spécifiée 7
0
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
3 févr. 2011 à 23:11
=SOMME(INDIRECT("A1:A"&LIGNE()-1))

fait la somme des cellules au dessus, depuis A1.
mis en A7, par exemple fait la somme de A1:A6.
Si on insère une ligne entre 6 et 7, fait alors la somme de A1:A7

Mais je pense que je n'ai pas du comprendre la question. Il va falloir etre plus explicite...
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 23:14
Eh bien c'est ça, et pour une colonne ? Je remplace &ligne par &colonne ?

0
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
3 févr. 2011 à 23:25
Eh bien c'est ça
et visiblement ce ne l'est pas...
Encore une fois, pouvez vous expliquer clairement ce que vous voulez faire ?
Sinon, vous pouvez déposer un fichier exemple (sans infos personnelles ou confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message en indiquant par l'exemple ce que vous cherchez à faire.
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
3 févr. 2011 à 23:27
Euuh, eh bien si, c'est exactement ce que je désirais pouvoir faire.

Merci
0
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
3 févr. 2011 à 23:36
=SOMME(INDIRECT("A1:A"&LIGNE()-1))

fait la somme des cellules au dessus, depuis A1.
mis en A7, par exemple fait la somme de A1:A6.
Si on insère une ligne entre 6 et 7, fait alors la somme de A1:A7


Si cela correspond à ce que vous voulez faire, alors la formule fonctionne : je l'ai testée.
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
4 févr. 2011 à 09:18
Rebonjour,

Ah, je me heurte à un problème... Lorsque je ne remplis pas la case, il la compte comme un zéro, comment ne pas la prendre en compte ?

Merci

0
Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
903
4 févr. 2011 à 20:25
Salut le forum

Je ne vois pas le rapport du zéro mais voila une formule alternative
=SOMME.SI(INDIRECT("A1:A"&LIGNE()-1);"<>0")

Mytå
0
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
4 févr. 2011 à 20:05
bonsoir,

effectivement, mais je ne vois pas le problème dans le cas d'une somme... (?)
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
5 févr. 2011 à 00:08
Car en réalité, c'est une moyenne (que je ne peux faire à l'aide de la fonction MOYENNE car les valeurs de cotations sont différentes)


Il faudrait une sorte de Sommeprod ...
0
Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
903
5 févr. 2011 à 00:35
Re le forum

Pas besoin de SOMMEPROD
=SOMME.SI(INDIRECT("A1:A"&LIGNE()-1);">0")/NB.SI(INDIRECT("A1:A"&LIGNE()-1);">0")

Mytå
0
adrienDN11
Messages postés
467
Date d'inscription
vendredi 24 avril 2009
Statut
Membre
Dernière intervention
5 janvier 2015
141
Modifié par adrienDN11 le 5/02/2011 à 12:00
Rhalalaa, et moi qui me disais hier que personne n'allait plus poster et que tout le monde était parti dormir .... Eh eh, bon, je vais tester ça mais merci en tout cas.

EDIT :

Où se situe l'endroit où je peux changer les coordonnées des lignes ?
0
dobo69
Messages postés
1584
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
30 juin 2013
787
Modifié par dobo69 le 5/02/2011 à 13:58
bonjour,

"A1:A"&LIGNE()-1 :

ligne() renvoie le numéro de ligne de la cellule où se situe la formule. (10 si la formule est en ligne 10)
donc ligne()-1 renvoie le numéro de la ligne précédente. (donc 9 pour suivre l'exemple)
"A1:A"&LIGNE()-1 assemble le texte "A1:A9", toujours pour le même exemple.
INDIRECT(....) interprète la chaine de texte ci-dessus comme la référence à la plage correspondante. A1:A9 est donc renvoyé sous forme de plage de cellules par INDIRECT.
On peut ensuite utiliser cette plage dans n'importe quelle formule.

Les lignes sont donc, comme pour n'importe quelle référence de plage, les chiffres de A1:A9 (de la ligne 1 à la ligne 9 - de la colonne A à la colonne A...)

ne pas hésiter non plus à consulter l'aide d'XL pour des explications sur les formules...

PS : pas besoin de SOMME.SI pour sommer les valeurs (objet de la question sur les valeurs 0 dans les sommes...) par contre pour obtenir une moyenne sans 0, il faut effectivement NB.SI (...;">0") au diviseur.

=SOMME(INDIRECT("A1:A"&LIGNE()-1))/NB.SI(INDIRECT("A1:A"&LIGNE()-1);">0")
0
Mytå
Messages postés
2967
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
903
6 févr. 2011 à 05:23
Re le forum

J'avais en tête de prendre en considération que les nombres positifs d'ou le SOMME.SI

Mytå
0