Liste sans doublons - VBA

Bonjour à tous,

J'ai une petite problématique sur laquelle j'aurai besoin d'aide

J'ai une liste de date qui sont sur une colonne d'un tableau. j'aimerai récupérer toutes les dates sans les doublons pour pouvoir les réutiliser une à une dans une boucle de mon code VBA.

Apres des recherches sur internet j'ai vu des propositions de dictionnaire mais je ne suis pas sur de l'utilité.

Voici le format de ma colonne si cela peut vous aider à voir plus clair.

28/02/2018

30/12/2018

30/12/2018

30/11/2018

30/11/2018

30/11/2018

30/11/2018

30/11/2018

30/11/2018

30/11/2018

30/11/2018

30/11/2018

Merci de votre aide.

Bonjour Samuxxx,

Oui, tu peux utiliser les dictionnaire afin de trier les doublons voici un code code qui te permettras de lister sans doublons,

Sub SSDoublons()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("a1", [a65000].End(xlUp))
    mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  [c2].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
End Sub

Ou bien, un code qui m'avait été donné par un des membres du forum :

Sub Liste()

Range(Cells(2, "a"), Cells(Rows.Count, "a").End(xlUp)).Copy

Cells(2, "b").PasteSpecial xlPasteValuesAndNumberFormats

With Range(Cells(2, "b"), Cells(Rows.Count, "b").End(xlUp))

.RemoveDuplicates Array(1), xlYes

End With

End Sub

Si ta liste est en colonne 1, tu récupère une nouvelle liste sans doublon en colonne 2.

212sans-doublon.xlsm (14.64 Ko)

Bonjour Florian53,

Super le dictionnaire cela emmagasine bien la liste pour les transposer sur une autre colonne mais les doublons sont toujours présents.

Voici le code que j'ai modifié juste pour correspondre à mes colonnes. mes dates sont sur la 4 eme colonne. je voudrai mettre la liste sans doublon sur la 8 eme colonne.

Sub LstssDoublons()
    Dim Tableau() As String
    Dim I As Integer

    derlgn = Range("D" & Rows.Count).End(xlUp).Row

    Set Mondico = CreateObject("Scripting.Dictionary")

    For J = 1 To derlgn

            If Cells(J, 4) <> "" Then Mondico(Cells(J, 4)) = Cells(J, 4)
    Next J

    Cells(1, 8).Resize(Mondico.Count) = Application.Transpose(Mondico.Items)

End Sub

Peut être que j'ai fait une erreur mais je ne la vois pas.

J'ai re editer mon post car je me suis aperçu que les doublons était encore présent, voici le nouveau avec tes colonnes:

Sub SSDoublons()
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In Range("D1", [D65000].End(xlUp))
    mondico.Item(c.Value) = mondico.Item(c.Value) + 1
  Next c
  [H1].Resize(mondico.Count, 1) = Application.Transpose(mondico.keys)
End Sub

Merci beaucoup Florian53 et Samzou974

Vos 2 formules fonctionnent parfaitement

Rechercher des sujets similaires à "liste doublons vba"