Gestion des doublons VBA

Bonjour;

Je souhaite dans un liste à 2 colonnes faire la chose suivante. Identifier les doublons et les sommer si il y en a.

Par exemple :

Imput :

A 10

C 6

V 3

C 2

A 5

D 2

Output :

A 15

C 8

V 3

D 2

Pour l'instant j'ai trouvé cela : Mais c'est très long... et moche. J'aimerai utiliser un truc du genre dictionnaire ou tableau, avez vous des pistes ?

Do While Cells(ligne, 1) <> ""

  If Cells(ligne, 1) = Cells(ligne + 1, 1) Then
    Cells(ligne, 2) = Cells(ligne, 2) + Cells(ligne + 1, 2)
    Cells(ligne + 1, 3).EntireRow.Delete Shift:=xlUp
  Else
    ligne = ligne + 1
  End If
Loop

J'ai trouvé comment créer un dictionnaire sans doublons mais je ne sais pas comment faire pour gerer les sommes :

Set MonDico = CreateObject("Scripting.Dictionary")
 On Error Resume Next
  For Each C In Range("A2:A10")
    MonDico.Add C.Value, C.Value
  Next C

  Tablo = Application.Transpose(MonDico.items)

Bonjour,

beaucoup plus rapide..

Sub TotalDataUnik()

Set mondico = CreateObject("Scripting.Dictionary")

For Each c In Range("a1", [a65000].End(xlUp))

mondico(c.Value) = mondico(c.Value) + c.Offset(, 1).Value

Next c

[E2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)

[f2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)

[E1].Sort Key1:=[E2], Order1:=xlAscending, Header:=xlYes

End Sub

Merci !

En fait je ne saisis pas trop comment fonctionne le dictionnaire entre les keys et les item.

Si je comprends bien il considère chaque nouvelle occurrence comme une key et si elle existe deja ou si elle est nouvellement crée il associe l'item c'est cela ?

Un excellent site ici pour en apprendre +

http://boisgontierjacques.free.fr/

Patrick

Merci ce site est une mine !

Merci pour votre aide cependant, pour l'écriture du dictionnaire sur la feuille est-il possible de donner une adresse variable et quelle doit etre la forme du code :

[F2].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)

[F(X)].Resize(mondico.Count, 1) = Application.Transpose(mondico.items)

avec X étant une sorte de compteur ?

Cela me permet de le mettre à la suite d'une autre liste en fait.

Merci

C'est bon j'ai trouvé tout seul, je suis content

Cells(MonDico.Count + 2, 1).Resize(MonDico2.Count, 1) = Application.Transpose(MonDico2.keys)

Bonne journée à tous;

Rechercher des sujets similaires à "gestion doublons vba"