Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre colonne

pioul

XLDnaute Nouveau
Bonjour à tous,

Voila, j'ai une question toute bête mais je ne trouve pas la solution ....

En fait, je vous explique la situation :

En simplifiant, J'ai 3 colonne , la colonne A qui contient un code , la colonne B qui
contient un montant et la colonne C qui contient une description.

Les codes peuvent évoluer dans le temps

Ma question est la suivante :
Je voudrais, dans une autre feuille ou dans une autre colonne retrouver mes codes de ma colonne A avec à coté la somme des montant de la colonne B qui correspond à ce code.

Je pense que je ne suis pas le seul à avoir eu ce problème mais j'ai chercher sur internet mais j e n'ai pas réussit à trouver une solution ! ( je ne dois pas m'exprimer correctement .... )

J’espère que vous allez pouvoir m'aider cela me ferai gagner énormément de temps.

Merci à tous,

Paul
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Bonjour
À partir de la D2:
Code:
=SOMME.SI(A:A;A2;B:B)

En relisant votre demande, je m'aperçois que c'est plutôt un récapitulatif que vous souhaitez.
Créez un rapport de tableau croisé dynamique.
Ou demandez moi ma fonction Récap qui a l'avantage de s'actualiser toute seule.
À+
 
Dernière édition:

JBOBO

XLDnaute Accro
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Bonjour et bienvenu sur xld,

Je pense que la fonction recherchev devrait convenir. un truc du genre =recherchev(A1;Feuil1!A:C;2;Faux). A adapter à ton contexte.

Sinon reviens avec un fichier exemple et on devrait pouvoir t'aider.

Oups, pas bien lu la question, somme.si fonctionnera mieux
 

Victor21

XLDnaute Barbatruc
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Bonjour, pioul.

En simplifiant, J'ai 2 colonne , la colonne A ..., la colonne B ... et la colonne C ...

Un (petit) bout de fichier joint, avec l'existant (sans données confidentielles), et le souhaité permettrait d'y voir plus clair, et donc de t'orienter sans recourir à des généralités qui t'obligeront à revenir pour demander un complément d'info.

Edit : Bonjour, Dranreb, JBOBO
 
Dernière édition:

pioul

XLDnaute Nouveau
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Merci effectivement ca fonctionne ... mais en fait il me manque une partie je voudrais avoir cela en E2 et en D2 avoir mon code de la colonne A trier et sans doublon...

En fait ...
Colonne A = Date
Colonne B = Code
Colonne C = montant

Puis un tableau récapitulatif :

Colonne X = Code
Colonne X+1 = somme des montants correspondant au Code

et que ce tableau se fasse automatiquement que j'ajoute un code ou que j'en supprime un ... Est ce possible ?
 

pioul

XLDnaute Nouveau
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

pour plus de clarté voici un fichier exemple ....

En fait je voudrais que mon tableau des colonne F et G se fasse automatiquement à chaque modification

Mes codes évoluent dans le temps et je voudrais qu'ils soient classés par ordre croissant en F avec leur total en G.

J'espere que c'est plus claire !!

Merci
 

Pièces jointes

  • exemple.xlsx
    10.5 KB · Affichages: 160
  • exemple.xlsx
    10.5 KB · Affichages: 177
  • exemple.xlsx
    10.5 KB · Affichages: 171

Dranreb

XLDnaute Barbatruc
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Plus le temps d'adapter.
L'essentiel de la moulinette se trouve là dedans
S'appuie sur des plages nomées.
Ce n'est pas une fonction ici.
Mais je l'ai aussi en fonction matricielle quelque part si ça vous intéresse.
Bonne soirée.
 

Pièces jointes

  • Récap.xls
    33.5 KB · Affichages: 156
  • Récap.xls
    33.5 KB · Affichages: 173
  • Récap.xls
    33.5 KB · Affichages: 170

pioul

XLDnaute Nouveau
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Merci Dranreb ... je veux bien essayer de reprendre ton fichier ...mais ... euh ... je vois pas où est le code ? j'ai rien dans la liste des macros .... et je ne comprend pas du tout comment cela fonctionne et surtout comment afficher le code pour pouvoir l'adapter ....
 

Dranreb

XLDnaute Barbatruc
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Il y a une Worksheet_Change dans Feuil1 et un module de classe Indexeur normalement.
Et puis j'ai retrouvé ma fonction Récap qui utilise ce même module de classe. Voici le code pour un module ordinaire cette fois:
VB:
Function Récap(ByVal Plg As Range) As Variant
Dim TbIndex() As Long, V As Variant, TRés() As Variant, Ls As Long, N As Long, Le As Long, Nbr As Long, Fini As Boolean
V = Plg.Value
With New Indexeur: .Init TbIndex, 1, UBound(V, 1): While .Actif: .ASupB = V(.A, 1) > V(.B, 1): Wend: End With
Set Plg = Application.Caller: ReDim TRés(1 To Plg.Rows.Count, 1 To 2) As Variant
Ls = 1: N = 1: Le = TbIndex(1)
Do: TRés(Ls, 1) = V(Le, 1): Nbr = 1
   Do: N = N + 1: Fini = N > UBound(TbIndex): If Fini Then Exit Do
      Le = TbIndex(N): If V(Le, 1) <> TRés(Ls, 1) Then Exit Do
      Nbr = Nbr + 1: Loop
   TRés(Ls, 2) = Nbr: Ls = Ls + 1: Loop Until Fini
While Ls <= UBound(TRés, 1): TRés(Ls, 1) = CVErr(xlErrNA): TRés(Ls, 2) = CVErr(xlErrNA): Ls = Ls + 1: Wend
Récap = TRés
End Function
Utilsée dans une plage verticale d'1 ou 2 colonnes, se valide par Ctrl+Maj+Entrée
Cordialement.
À demain.
 

Dranreb

XLDnaute Barbatruc
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Bonjour.
J'ai étoffé un peu ma fonction Récap pour qu'elle soit capable de calculer des sommes sans avoir besoin de rajouter des SOMME.SI derrière.

=Récap(Arg; Col1; Col2; ... ColN) à valider matriciellement (Ctrl+Maj+Entrée)
Arg: Plage dans une seule colonne contenant l'identifiant à récapituler
Col1...N: Cellule(s) dans une seule colonne dont on veut les sommes par identifiant,
ou bien, un texte par ex. "Nbr" pour demander simplement un comptage.

Restant à votre disposition pour l'améliorer.
Cordialement

P.S. Je suis parti de votre fichier, ça devrait vous permettre d'adapter au cas réel.
À+
 

Pièces jointes

  • Récap2.xls
    52 KB · Affichages: 110
Dernière édition:

pioul

XLDnaute Nouveau
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Merci dans l'idée c'est cela... par contre dans mon fichier Excel j'ai plusieurs centaines de codes différents .... et changent dans le temps.

Il se trouve que dans ta réponse, lorsque je change une valeurs de la colonne A cela ne fonctionne plus. Quand je change un de mes codes par un autre code, cela ne met "l'indice n'appartient pas à la sélection"

Cela ne fonctionne pas non plus lorsque que j'ajoute de nouvelles lignes.

Il faudrait en fait que le nombre de ligne du tableau évolue en fonction du nombre de code qui existe dans ma colonne A.

En fait, je n'arrive pas à modifier la matrice , j'ai un message "Impossible de modifier une partie de Matrice"

Je sais pas si c'est très claire ....
 

Dranreb

XLDnaute Barbatruc
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Quand je change un de mes codes par un autre code, cela ne met "l'indice n'appartient pas à la sélection"
Cause identifiée: La formule matricielle n'est pas assez grande pour accueillir tout le récapitulatif. Je reconnais que ce n'est pas bon comme conséquence. Si on veut se contenter d'éviter le plantage on peut remplaçer PlgA par PlgK dans le redimensionnement en lignes de TRés :
VB:
ReDim TRés(1 To PlgK.Rows.Count, 1 To PlgA.Columns.Count) As Variant
Il faudrait en fait que le nombre de ligne du tableau évolue en fonction du nombre de code qui existe dans ma colonne A.
Ce n'est pas possible directement avec cette solution, voir s'il ne suffit pas de prévoir un nombre de lignes suffisant pour le récapitulatif.
En fait, je n'arrive pas à modifier la matrice , j'ai un message "Impossible de modifier une partie de Matrice"
Effectivement, fort heureusement on ne peut pas valider une cellule d'une matrice par Entrée, on ne peut que revalider toute la matrice par Ctrl+Maj+Entrée. Toutefois, et ça c'est très important, on peut le faire sur une sélection convrant entièrement une matrice existante, donc celle ci agrandie d'un certain nombre de lignes entre autres. On ne peut pas réduire la matrice: il faut l'effacer et la refaire complètement.

J'attends vos autres remarques et suggestions pour améliorer la fonction qui garde l'avantage de ne pas necessiter d'adaptation liée à la nature et à l'emplacement des données, au contraire d'une solution par procédure Worksheet_Change.
À+
 

pioul

XLDnaute Nouveau
Re : Regrouper les valeurs d'une colonne et faire le total des valeurs d'une autre co

Merci de ton aide ... je ne pensais pas que cela aller être si compliqué !

en changeant
Code:
ReDim TRés(1 To PlgK.Rows.Count, 1 To PlgA.Columns.Count) As Variant

Je n'ai plus le message d'erreur mais , ma nouvelle valeur se place dans la derniére ligne de mon tableau ... et efface celle présente précédent.

N'est il pas possible de faire le calcul du nombre de valeur différente dans ma colonne et de mettre ce nombre en variable pour le nombre de ligne de mon tableau ?

Dans ce cas ce serai parfait !
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko