[EXCEL] Somme de cellules

Résolu
adrienDN11 Messages postés 589 Statut Membre -  
adrienDN11 Messages postés 589 Statut Membre -
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



--
Je suis juste de passage, Juste un petit aterrissage,
Je vais bientôt repartir, Vers l'Avenir

14 réponses

  1. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    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
  2. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    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
  3. Gord21 Messages postés 928 Statut Membre 289
     
    Bonjour,
    Si j'ai bien saisi, en B1 tu inscris :
    =SOMME($A$1:B1)

    Puis tu copies en C1, D1, ...

    @+
    0
  4. adrienDN11 Messages postés 589 Statut Membre 137
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. adrienDN11 Messages postés 589 Statut Membre 137
     
    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
  7. adrienDN11 Messages postés 589 Statut Membre 137
     
    Bonsoir,

    Merci, impeccable.

    Adrien
    0
  8. adrienDN11 Messages postés 589 Statut Membre 137
     
    Euuh, par contre, pour l'offset vertical, on fait comment ?

    Merci

    0
  9. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    plus simple :

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

    pour ne prendre en compte les 2 1°lignes :

    =SOMME(INDIRECT("A3:A"&LIGNE()-1))
    0
  10. adrienDN11 Messages postés 589 Statut Membre 137
     
    Bonsoir,

    La "plus simple" ne fonctionne pas.

    0
    1. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
       
      c'est à dire ?
      je n'ai peut etre pas compris ce que signifiait "l'offset vertical"...
      0
    2. adrienDN11 Messages postés 589 Statut Membre 137
       
      Reprendre dans cette même cellule la même formule pour la ligne spécifiée 7
      0
  11. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    =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
  12. adrienDN11 Messages postés 589 Statut Membre 137
     
    Eh bien c'est ça, et pour une colonne ? Je remplace &ligne par &colonne ?

    0
    1. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
       
      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
    2. adrienDN11 Messages postés 589 Statut Membre 137
       
      Euuh, eh bien si, c'est exactement ce que je désirais pouvoir faire.

      Merci
      0
  13. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    =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
  14. adrienDN11 Messages postés 589 Statut Membre 137
     
    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
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      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
  15. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    bonsoir,

    effectivement, mais je ne vois pas le problème dans le cas d'une somme... (?)
    0
    1. adrienDN11 Messages postés 589 Statut Membre 137
       
      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
    2. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      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
    3. adrienDN11 Messages postés 589 Statut Membre 137
       
      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
    4. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
       
      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
    5. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      Re le forum

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

      Mytå
      0