Fusionner et sommer des doublons

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

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

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 ?

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.

Bonjour,

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

Cordialement

Ferrand

3'680bibou.xlsx (13.83 Ko)

Bonjour,

Un exemple.

Cdlt.

3'061demo.xlsx (11.92 Ko)

Bonjour,

cf PJ

Ceuzin

1'530soustotal2colonneszz.zip (17.24 Ko)

Merci pour vos différentes solutions !

Bonne continuation.

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

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

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

svp si je veux faire la moyenne au lieu de la somme dois-je changer quoi ?

Rechercher des sujets similaires à "fusionner sommer doublons"