Somme excel

Bonjour,

Je cherche à faire une somme en prenant en comtpe certains critères, et je n'ai pas encore trouver de solutions.

Je m'explique, je dispose de 3 colonnes (A,B,C) et voudrait calculer une somme sur la quatrième (D) :
- La colonne A possède autant d'identifiant que de lignes
- La colonne B sont des identifiants qui peuvent etre identiques
- La colonne c represente des surfaces.
- La colonne D est celle que j'aimerais obtenir, c'est à dire des surfaces en fonction de l'identifiant B (lorsque il yen a plusieurs identique, il fait la somme des surfaces de ceux-ci)

A B C D
1 122 200 200
2 123 300 400
3 123 100 400
4 124 50 50
5 125 30 30

voila j'espère que j'ai été clair.
Merci d'avance pour votre aide.
Configuration: Windows Vista Internet Explorer 7.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,
    Tu insères cette fonction dans un module ou tu l'affectes à un bouton, as you want!!!
    J'ai supposé que ton calcul devait commencer en première ligne... Sinon remplace A1 par A2 ou A3 etc...
    Sub sommesi()
    Dim derlign As String, valeur As String
    Dim i As Integer
    derlign = ActiveSheet.Range("A65536").End(xlUp).Row
    ActiveSheet.Range("A1").Select
    Do While ActiveCell <> ""
    valeur = "=" & ActiveCell.Offset(0, 1).Value
    ActiveCell.Offset(0, 3).FormulaR1C1 = _
    "=SUMIF(RC[-2]:R[" & derlign & "]C[-2],""" & valeur & """,RC[-1]:R[" & derlign & "]C[-1])"
    ActiveCell.Offset(1, 0).Select
    Loop
    End Sub
    1. Merci je vais essayer de suite, mais je suis assez debutant!
      Pour créer un module il faut faire une macro c'est bien ça?

      merci pour ton aide je te tiens au courant!
      1. Modérateur
        Pour créer un module :
        ALT + F11 Insertion Module..
    2. merci ça a marché... enfin presque!!

      A 830126*01022 719,00000000 719
      B 830126*01023 650,00000000 650
      C 830126*01024 438,00000000 438
      D 830126*01025 1545,00000000 4396
      E 830126*01025 294,00000000 2851
      F 830126*01025 1645,00000000 2557
      G 830126*01025 912,00000000 912
      H 830126*01026 375,00000000 375
      I 830126*01031 9957,00000000 9957
      J 830126*01100 143,00000000 143
      K 830126*01101 278,00000000 278

      Pour la ligne D il me fait bien la somme, mais pas pour E,F,G
      A savoir aussi que j'ai un tableau avec 1000 lignes, donc des fois la somme peut se faire sur 5 lignes, 4 lignes, ...
      merci de ton aide
      1. Modérateur
        C'est de ma faute....... Voici le bon code à insérer dans ton module :

        Sub sommesi()
        Dim derlign As String, valeur As String, premlign As String
        Dim i As Integer
        premlign = 0
        derlign = ActiveSheet.Range("A65536").End(xlUp).Row
        ActiveSheet.Range("A1").Select
        Do While ActiveCell <> ""
        valeur = "=" & ActiveCell.Offset(0, 1).Value
        ActiveCell.Offset(0, 3).FormulaR1C1 = _
        "=SUMIF(R[" & premlign & "]C[-2]:R[" & derlign & "]C[-2],""" & valeur & """,R[" & premlign & "]C[-1]:R[" & derlign & "]C[-1])"
        ActiveCell.Offset(1, 0).Select
        premlign = premlign - 1
        Loop
        End Sub
        1. Yes !!

          Je viens de l'essayer et c'est parfait !! Cela marche!! merci baeaucoup pour ton aide voir plus qu'une aide ton assistance!!

          Merci

          bobby