Somme par variable
johnvegas
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bonjour,
J'aimerai faire une macro qui permet de calculer la somme par élément, je m'explique: j'ai par exemple un tableau comme ça
Nom Nb de points
aline 300
aline 250
aline 400
aline 200
rémi 400
rémi 330
rémi 100
albert 350
albert 220
albert 220
J'aimerai que la macro me sorte le résultat suivant:
aline 1150
rémi 830
albert 790
C'est à dire la somme pour chaque nom.
Comment procéder s'il vous plait ?
Merci :)
Bonjour,
J'aimerai faire une macro qui permet de calculer la somme par élément, je m'explique: j'ai par exemple un tableau comme ça
Nom Nb de points
aline 300
aline 250
aline 400
aline 200
rémi 400
rémi 330
rémi 100
albert 350
albert 220
albert 220
J'aimerai que la macro me sorte le résultat suivant:
aline 1150
rémi 830
albert 790
C'est à dire la somme pour chaque nom.
Comment procéder s'il vous plait ?
Merci :)
A voir également:
- Somme par variable
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Somme si ens ou ✓ - Forum Excel
3 réponses
Bonjour,
Pas besoin de macro,
Un simple Tableau croisé dynamique répondra à votre demande,
Cordialement,
Pas besoin de macro,
Un simple Tableau croisé dynamique répondra à votre demande,
Cordialement,
Bonjour Vegas, Lentzouille
as tu demandé à la personne si elle connaissait les Tableaux croisés Dynamiques car souvent, on ne connait pas cette b^te là pourtant très efficace et rapide à exécuter
on peut aussi le faire par formules sans grande difficulté et aussi par filtres ou bdsomme...
bref, "penser Excel avant de penser VBA" :o)
mais comme on veut du VBA, allons y avec la grosse artillerie (on considère qu'il y a des milliers de lignes, il n'est pas nécessaire que le noms sont groupés)!!!
la maquette:
https://www.cjoint.com/?3IApArBGXf4
as tu demandé à la personne si elle connaissait les Tableaux croisés Dynamiques car souvent, on ne connait pas cette b^te là pourtant très efficace et rapide à exécuter
on peut aussi le faire par formules sans grande difficulté et aussi par filtres ou bdsomme...
bref, "penser Excel avant de penser VBA" :o)
mais comme on veut du VBA, allons y avec la grosse artillerie (on considère qu'il y a des milliers de lignes, il n'est pas nécessaire que le noms sont groupés)!!!
Option Explicit
Sub Additionne_par_critere()
Dim Derlig As Integer, Dico As Object
Dim Lig As Integer, Nom As String, Points As Double
Application.ScreenUpdating = False
Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
Set Dico = CreateObject("scripting.dictionary")
For Lig = 2 To Derlig
Nom = Cells(Lig, "A")
If Not Dico.exists(Nom) Then
Points = Cells(Lig, "B")
Dico.Add Nom, Points
Else
Points = Points + Cells(Lig, "B")
Dico.Item(Nom) = Points
End If
Next
Range("E2").Resize(Dico.Count, 1) = Application.Transpose(Dico.Keys)
Range("F2").Resize(Dico.Count, 1) = Application.Transpose(Dico.items)
End Sub
la maquette:
https://www.cjoint.com/?3IApArBGXf4