Somme excel

bobby -  
 bobby -
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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    0
  2. bobby
     
    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!
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Pour créer un module :
      ALT + F11 Insertion Module..
      0
  3. bobby
     
    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
    0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bobby
     
    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
    0