Sub DoublonsTotal()
'Pour pouvoir utiliser cette méthode, assurez vous que la référence "Microsoft Scripting Runtime" est activée.
Set d = CreateObject("Scripting.Dictionary") 'Création d'un Dico pour la colonne 2(Désignation)
Set d2 = CreateObject("Scripting.Dictionary") 'Création d'un Dico pour la colonne 3 (Qté)
Set d3 = CreateObject("Scripting.Dictionary") 'Création d'un Dico pour la colonne 4 (Prix Unit)
Set d4 = CreateObject("Scripting.Dictionary") 'Création d'un Dico pour la colonne 5 (Total)
For Each c In Range("a1", [a65000].End(xlUp)) 'Boucle sur les données col 1
d(c.Value) = d(c.Value) + c.Offset(, 1).Value ' regroupe dans le dico col 2
d2(c.Value) = d2(c.Value) + c.Offset(, 2).Value ' regroupe dans le dico col 3
d3(c.Value) = d3(c.Value) + c.Offset(, 3).Value ' regroupe dans le dico col 4
d4(c.Value) = d4(c.Value) + c.Offset(, 4).Value ' regroupe dans le dico col 5
Next c
[A1:E65000].Clear 'vide la feuille
[a1].Resize(d.Count, 1) = Application.Transpose(d.keys) 'replace les données col 1 sans doublons (clé)
[b1].Resize(d.Count, 1) = Application.Transpose(d.items) 'replace les données col 2
[c1].Resize(d.Count, 1) = Application.Transpose(d2.items) 'replace les données col 3
[d1].Resize(d.Count, 1) = Application.Transpose(d3.items) 'replace les données col 4
[e1].Resize(d.Count, 1) = Application.Transpose(d4.items) 'replace les données col 5
End Sub
Ce n’ai pas pour t’embêter, mais juste pour que ce soit plus clair pour celui / celle qui a ta réponse et surtout pour les nombreux visiteurs du forum qui peuvent y trouver une solution sans être obligés d’ouvrir un fichier.
@Mimimathy Pour ajouter le code VBA il te suffit de le coller dans ton message, précédé de (3 accents graves vb) et suivi de (3 accents graves)
La syntaxe VBA est alors mise en valeur automatiquement! Comme expliqué ici Comment écrire du beau code VBA bien formatté sur ce forum