Somme de cellule portant le même nom sur Exce

Résolu
jimclermont -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai une feuille (A) de calcul avec plusieurs cellule portant des noms. ex. "=aqueduc" donne exemple 20$ se rapporte à une cellule d'une autre feuille (B).

Moi je veux faire la somme de toute les cellules de la feuille (A) qui comporte "=aqueduc".

Le problème c'est que j'ai une formule qui fonctionne à moitié SOMPROD. Elle adittionne tous les cellule qui on 20$ comme résultat.

Comment faire pour que la formule prenne en compte le nom de la cellule et non le montant donné par le nom de la cellule

Merci

9 réponses

  1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    "Moi je veux faire la somme de toute les cellules"
    Tu voulais dire "... faire le décompte de ..." ?

    =NB.SI(plage;"*aqueduc*") à essayer ... (j'ai pas vérifié !)
    C'est bien, la retraite ! Surtout aux Antilles ... :-)
    ? Raymond ?
    6
    1. jimclermont
       
      Malheureusement ca ne fonctionne pas, j'ai fait un test qui devrait donner 300 et avec cette formule le résultat donne 0.
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Re,

    Un peu de retard sur patrice, mais comme elle est faite voici ma version de la fonction personnalisée :
    Function SommeSiNom(plage As Range, nom As String) As Double  
        Dim c As Range    
        For Each c In plage    
            If Mid(c.Formula, 2) = nom Then SommeSiNom = SommeSiNom + 1    
        Next c    
        SommeSiNom = SommeSiNom * Range(nom)    
    End Function

    Ex syntaxe :
    =SommeSiNom(formule!$E$5:$E$12;B9)

    Eric

    Edit: fichier exemple : SommeSiNom.xls
    1
    1. jimclermont
       
      Eriiic tu as la solution exact. C'est parfait et testé tout est ok.

      Il me reste juste une chose à régler dans mon fichier. Je t'envoi ton fichier avec mes modification. Dans la "formule" j'ai ajouté 2 collones, je dois avoir le total des donnés qui son dans la collone H quand il y a la cellule acqueduc dans la collone F. voir explication FEUIL3.

      http://www.cijoint.fr/cjlink.php?file=cj201103/cijUHcfQsZ.xls

      MERCI D'AVANCE
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Re,

      Nouvelle fonction qui accepte 2 syntaxes (le 3ème paramètre est optionnel) :
      Function SommeSiNom(plage As Range, nom As String, Optional plage_valeurs As Range) As Double
          Dim c As Range, lig As Long, opt As Boolean
          If Not plage_valeurs Is Nothing Then opt = True
          For Each c In plage
          lig = lig + 1
              If Mid(c.Formula, 2) = nom Then
                  If Not opt Then
                      SommeSiNom = SommeSiNom + c.Value
                  Else
                      SommeSiNom = SommeSiNom + Application.Transpose(plage_valeurs.Value)(lig)
                  End If
              End If
          Next c
      End Function

      Syntaxe1 (idem 1ère fonction) :
      =SommeSiNom(formule!$F$5:$F$12;B9)
      Syntaxe2 :
      =SommeSiNom(formule!$F$5:$F$12;B9;formule!$H$5:$H$12)
      Si le 3ème paramètre optionnel est présent ce sont les valeurs de cette plage qui seront additionnées.
      Remarque1 :
      =SommeSiNom(formule!$F$5:$F$12;B9;formule!$F$5:$F$12) donne le même résultat que la syntaxe1
      Remarque2:
      On peut tout aussi bien effectuer la multiplication et se passer de la colonne intermédiaire H.

      SommeSiNom.xls
      eric
      0
      1. gryffin01 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Bonjour, je suis en train de me poser la même question mais vu que je ne sais pas a quoi correspond le B9, la colonne F ou la colonne H, je ne sais pas l'appliquer correctement. Pouvez vous donner une explication a cette formule SVP ?
        0
      2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > gryffin01
         
        Bonjour gryffin01,

        4 ans après je ne me rappelle pas les détails et rien ne dit que ce soit adapté à ton problème.
        Démarre ta question dans un nouveau topic avec un fichier de travail, les explications et le résultat attendu (le déposer sur cjoint.com et coller dans ta question le lien fourni)
        Ajoute le lien vers ce post aussi : https://forums.commentcamarche.net/forum/affich-21436548-somme-de-cellule-portant-le-meme-nom-sur-exce#18

        eric
        0
    3. jimclermont
       
      Eriiic c'est parfait tu es un vrai pro

      Merci infiniment, là je peux dire que le problème est résolu à 100%

      Merci encore
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Parles-tu réellement de nom ou de contenu ?
    Sur excel on peut nommer une cellule ou une plage...
    Si tu parles de contenu :
    =SOMME.SI(Feuil1!A1:E10;"aqueduc";Feuil2!A1:E10)
    si tu parles de nom :
    =SOMME(aqueduc)

    eric
    0
    1. jimclermont
       
      C'est la cellule qui porte un nom, ca me facilite la tache, car je dois mettre les même valeurs à plusieurs endroit.

      C'est un très gros fichier. J'ai 134 noms de cellule sur 17 feuilles excel. C'est pour faire le suivi d'un projet. Le but d'additionner les noms de cellule, c'est que je veux avoir comme un liste d'épicerie, quantité d'items à acheter.

      Malheureusement les 2 formules ne fonctionne pas, j'ai l'impression que les formules ne veulent pas tenir compte du nom de la cellule.

      Merci
      0
    2. mic13710 Messages postés 1165 Date d'inscription   Statut Membre Dernière intervention   360
       
      S'il s'agit d'additionner des cellules portant le même nom, la formule =somme(le nom des cellules) fonctionne très bien même sur des cellules non contiguës.
      Avez vous nommé vos cellules en même temps ? En clair, êtes vous sûr que vos cellules font partie du même nom ?

      Michel
      0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jimclermont
     
    Bonjour boulidore

    Je ne peux t'envoyer le fichier original, car c'est un peu confidentiel. Parcontre, je t'envoi un fichier avec explication sur la FEUIL3 qui représente ce que je recherche.

    Merci de votre aide

    http://www.cijoint.fr/cjlink.php?file=cj201103/cij7WlfK5K.xls
    0
  6. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour en attendant Eric qui travaille le pauvre.

    un peu compliquée votre construction, mais enfin, c'est vous qui voyez;
    essayez en C9, à tirer vers le bas:

    =SOMME.SI(formule!$E$5:$E$12;INDIRECT(B9);formule!$E$5:$E$12)

    à priori ça donne le résultat que vous attendez en E9!

    crdlmnt
    0
    1. jimclermont
       
      Vaucluse tu as la bonne solution merci énormément je viens d'éviter une autres journée de recherche.

      Le problème est résolu

      Good

      Merci encore

      Bonne fin de journée
      0
    2. mic13710 Messages postés 1165 Date d'inscription   Statut Membre Dernière intervention   360
       
      OK Vaucluse, vous avez compris ce qu'il fallait faire. Je n'avais pas du tout saisi à quoi servait cette feuille formule.

      Michel
      0
    3. jimclermont
       
      Vaucluse

      Je viens de transposer la formule dans mon fichier. Il y a encore un problème.

      La formule addition encore toutes les valeurs et non les nom de cellule. Exemple, aqueduc vaut 20 alors ta formule addition toutes les cellule ayant 20 a l'intérieur.

      Ca fait la même chose si 2 nopm de cellule on la même valeur

      Je te renvoi le fichier avec le probleme

      http://www.cijoint.fr/cjlink.php?file=cj201103/cijue6NIQr.xls
      0
    4. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      là je ne comprend pas
      pourquoi il y aurait dans la feuille nom colonne D des cellules qui auraient une valeur 20 qui ne soit pas nommée =Aqueduc?
      Qu'est ce qui différencierait ces cellules des réelles Aqueduc?
      Pourquoi taper 20 dans la cellule si le choix d'origine (compliqué) est de placer =Aqueduc pour afficher 20?
      0
  7. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Si tu as simplement besoin de la somme (mais du résultat dans une cellule) voici une méthode manuelle :
    Excel 2007 : Accueil / Rechercher
    Excel 2003 Édition / Rechercher

    Rechercher : =aqueduc / Rechercher tout / Ctrl + A (sélectionne toutes les cellules concernées)
    La somme est affichée en bas, dans la barre d'état.

    Sinon, je ne pense pas que ce soit possible avec une formule, il faut écrire une macro.

    -1
    1. jimclermont
       
      Merci pour ta réponse Patrice33740, mais malheureusement j'ai besoin d'avoir la somme dans une cellule(le résultat), car je dois mettre d'autres formules à partir de cette cellule. Est-ce que tu connais la macro nécessaire, j'en est essayé plusieurs et rien ne fonctionne.

      merci
      0
  8. mic13710 Messages postés 1165 Date d'inscription   Statut Membre Dernière intervention   360
     
    Pas très clair ce que vous demandez.

    Dans les résultats vous dites aqueduc devrait donner 60. Pour moi aqueduc = 20.
    Aqueduc 700 devrait donner 70 et vous dites que le résultat devrait donner 140.

    En clair je ne vois pas de corrélation entre les données et le résultat que vous souhaitez obtenir.
    Pourquoi il n'y aurait pas de valeur en face des aqueduc 500, 600, 800 et 900 ?
    A quoi sert la feuille formule ?

    Bref, il faudrait nous en dire plus pour qu'on comprenne.

    Michel
    -1
    1. jimclermont
       
      C'est le total de toutes les cellules contenant un tiem.

      La solution a été trouvé par Vaucluse

      merci
      0
  9. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Re,

    Avec une fonction personnalisée (macro) à mettre dans un module :

    Private Function SommeNom(Nom As String) As Double 
    Dim cel As Range 
       
      Application.Volatile 
      Application.Calculation = xlCalculationManual 
      For Each cel In ActiveSheet.UsedRange.Cells 
        If cel.Formula = "=" & Nom Then 
          SommeNom = SommeNom + cel.Value 
        End If 
      Next cel 
      Application.Calculation = xlCalculationAutomatic 
       
    End Function 
    


    Pour l'utiliser mettre la formule suivante dans la cellule :
    =Sommenom("aqueduc")

    Cordialement
    Patrice
    -1
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      PS : la valeur (aqueduc) doit être numérique
      0
    2. jimclermont
       
      Merci Patrice33740

      La macro fait le traivail. Mais je ne veux pas t'en demander trop, mais est-ce que tu peux ajouter une sélection de champ à cette macro. Pour l'instant, je dois utiliser la macro dans chaque feuille et transférer dans une feuille totaux. Avec la possibilité de sélectionner, ce serait parfait.

      Merci beaucoup Patrice, tu ne sais pas comment tu m'aide.
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Re,

      Tu peux jeter un oeil à ma proposition juste en dessous (post 18) voir si c'est ce qui te manque
      eric
      0