Obtenir une liste sans doublons

bonsoir forum,

J'ai créé une liste B de données découlant d'une liste A.

Cependant, dans la liste B, je me retrouve avec des doublons.

Comment faire pour obtenir une liste de données distinctes?

Je vous joins le fichier correspondant avec quelques explications dessus également : https://www.excel-pratique.com/~files/doc2/Suivi_Commande.xls

Je vous remercie d'avance pour votre aide.

Bonjour,

essaie avec ce code dans l'évènement de feuille (Feuil4)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Fournisseurs As Object
If Target.Count > 1 Then Exit Sub
If Target.Address = "$A$2" And Target <> "" Then
    Set Fournisseurs = CreateObject("Scripting.Dictionary")
    With Sheets(CStr(Target))
        For Each Cel In .Range("B2:B" & .[B65000].End(xlUp).Row)
            Fournisseurs.Item(Cel.Value) = Cel.Value
        Next Cel
    End With
    temp = Fournisseurs.items
    Call tri(temp, LBound(temp), UBound(temp))
    For i = LBound(temp) To UBound(temp)
        tmp = tmp & "," & temp(i)
    Next i
    tmp = Right(tmp, Len(tmp) - 1)
    With Target.Offset(, 1)
        .ClearContents
        .Validation.Delete
        .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:=tmp
        .Select
    End With
End If
End Sub

Sub tri(a, gauc, droi) ' Quick sort
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    End If
  Loop While g <= d
  If g < droi Then Call tri(a, g, droi)
  If gauc < d Then Call tri(a, gauc, d)
End Sub

https://www.excel-pratique.com/~files/doc2/Suivi_Commande_v1.zip

Bonjour cousinhub, forum,

1. Post ouvert le 22/08/09 à 3h03

2. Répondu à 4h53

3. Mis en Résolu à 9h14

Que demander de plus?

Merci beaucoup cousinhub!! Tes interventions restent toujours d'aussi bonne facture

Edit1 : point 3 : pas tout à fait encore

Bonjour vba-new

vba-new a écrit :

Que demander de plus?

Le passer effectivement en RESOLU ?

Amicalement

Nad

Une petite demande avant de mettre le post en résolu

La présentation étant peu attirante, est-il possible de mettre ces deux listes dans des ComboBox, ListBox ou autres? Le but étant de l'égayer un peu, cette présentation

Merci d'avance

Edit : salut Nad, je ne manquerai pas de le faire

C'est exactement ce qu'il me faut cousinhub! Merci beaucoup!

Par contre, je viens de le voir, dans le fichier précédent, lorsque je sélectionne le compte 606, je n'ai pas toute la liste des fournisseurs

Il semblerait que la taille de la liste déroulante ne permette pas de voir le reste des fournisseurs!

Y a-t-il un remède à ça?

PS : je te demande ça car j'aimerais quand même garder la liste sans userform quelque part! Ça pourrait me servir plus tard

Re,

Effectivement, la liste est trop longue, pour la validation de données...

Un petit ersatz...

colonne H masquée, on met dedans la liste triée sans doublons...

Et on y fait référence dans la validation de données...

https://www.excel-pratique.com/~files/doc2/Suivi_Commande_v3.zip

Parfait cousinhub!

Un dernier petit truc sur l'affichage par userform

Lorsque je sélectionne le compte 606 (avec l'userform donc), la liste des fournisseurs n'est pas complètement triée dans l'ordre alphabétique

liste1

Comment cela se fait-il?

Merci encore pour ton aide cousinhub!

Re-,

en haut du code de l'usf, tu mets ceci :

Option Compare Text

afin de s'affranchir des minuscules et des majuscules....

Rien à dire sinon merci cousinhub!

Merci également à ceux qui auraient cherché à m'aider!

PS : Post résolu Nad

Rechercher des sujets similaires à "obtenir liste doublons"