Fusionner et sommer des doublons Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
Bibou
Jeune membre
Jeune membre
Messages : 31
Inscrit le : 13 août 2015
Version d'Excel : 2013 FR

Message par Bibou » 17 août 2015, 11:30

Bonjour,

Je cherche à supprimer les doublons d’un tableau (non trié) en conservant pour chaque doublon un exemplaire et à sommer les valeurs d’une colonne leurs correspondant, le tout en VBA !

Voici un exemple illustré de ce je cherche à faire :
Dans le premier tableau ci-dessous, on y trouve les doublons DUPONT et MARTIN. La valeur des abonnements est toujours le même pour un vendeur donné. En revanche, la valeur des licences est différente pour un vendeur donné :
doublons.PNG
doublons.PNG (7.06 Kio) Vu 1836 fois
Ce que je voudrais faire est de « fusionner » les lignes DUPONT (dans le même tableau), en conservant la valeur 25 dans abonnements mais en sommant les valeurs des licences lui correspondant. De la même manière pour MARTIN. On obtiendrait le tableau ci-dessous :
doublons2.PNG
doublons2.PNG (3.9 Kio) Vu 1836 fois
J’ai un code qui fonctionne si et seulement le tableau est classé par ordre alphabétique mais je ne souhaite pas le trier…

Pouvez-vous m’aider, s’il vous plait ?
Avatar du membre
Raja
Passionné d'Excel
Passionné d'Excel
Messages : 5'059
Appréciation reçue : 1
Inscrit le : 3 février 2008
Version d'Excel : 2010 à 2016 FR et 2010 EN

Message par Raja » 17 août 2015, 11:53

Bonjour,

Insérer un tableau croisé dynamique résoudra le problème.
Menu Insérer/TblCroiséDynamique et cocher respectivement les cases Vendeurs, Licences et Abonnements. Si la solution te va pas, il faudra nous révéler ton code et le classeur qui va avec.
Cdlt,
Raja
M
MFerrand
Fanatique d'Excel
Fanatique d'Excel
Messages : 17'203
Appréciations reçues : 445
Inscrit le : 20 juillet 2015
Version d'Excel : 2010 FR

Message par MFerrand » 17 août 2015, 12:09

Bonjour,

Ta récapitulation peut se faire facilement en formules...

Cordialement
Ferrand
Bibou_.xlsx
(13.83 Kio) Téléchargé 356 fois
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'969
Appréciations reçues : 466
Inscrit le : 27 août 2012
Version d'Excel : O365 32 bits

Message par Jean-Eric » 17 août 2015, 12:10

Bonjour,
Un exemple.
Cdlt.
DEMO.xlsx
(11.92 Kio) Téléchargé 283 fois
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
c
ceuzin
Membre dévoué
Membre dévoué
Messages : 569
Appréciations reçues : 24
Inscrit le : 29 octobre 2011
Version d'Excel : 2002

Message par ceuzin » 17 août 2015, 12:46

Bonjour,

cf PJ


Ceuzin
SousTotal2Colonneszz.xls
(61 Kio) Téléchargé 202 fois
B
Bibou
Jeune membre
Jeune membre
Messages : 31
Inscrit le : 13 août 2015
Version d'Excel : 2013 FR

Message par Bibou » 17 août 2015, 14:00

Merci pour vos différentes solutions !

Bonne continuation.
l
llemezo
Jeune membre
Jeune membre
Messages : 13
Inscrit le : 11 février 2019
Version d'Excel : 2016fr

Message par llemezo » 23 février 2019, 13:56

salut tout le monde
ce poste ou je suis tombé au hasard ma vraiment aider
je voulais vous demandé si c’était possible au lieu de fusionner et de sommer les doublon sur une autres cellules(E11)
som pro.JPG
som pro.JPG (45.38 Kio) Vu 1008 fois
d'effectuer ce procéder sur la base de référence en effaçant d'abord les donnés de bases (A2:C23)
som pro1.JPG
som pro1.JPG (29.21 Kio) Vu 1008 fois
mercie
j' en ai retenu ceux model que vous avez proposé
Sub SousTotalNonTrié()
  Set d1 = CreateObject("Scripting.Dictionary")
  a = Range("A2:C" & [a65000].End(xlUp).Row)
  j = 0
  For i = LBound(a) To UBound(a)
     If Not d1.exists(a(i, 1)) Then j = j + 1: d1(a(i, 1)) = j
  Next i
  Dim b(): ReDim b(1 To d1.Count, 1 To UBound(a, 2))
  For ligne = LBound(a) To UBound(a)
    p = d1(a(ligne, 1))
    b(p, 2) = b(p, 2) + a(ligne, 2)
    b(p, 3) = a(ligne, 3)
    b(p, 1) = a(ligne, 1)
  Next ligne
  [E11].Resize(UBound(b), UBound(b, 2)) = b
End Sub
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message