Retiré un item d'une listbox

Bonjour,

J'ai un userform avec une listbox.

     For Y = 8 To 157
W = .Cells(Y, 2).Value
ListBox1.AddItem W
next Y

je rentre des prénoms.

Je souhaiterai ne pas avoir de doublons c'est à dire si je commence par Jean et je retrouve Jean à la ligne 10 je ne veux pas le remettre dans ma listbox.

C'est possible?

Bonsoir Naubin1 le forum

oui bien sur que c'est possible

je te le fais demain matin là je pars

a+

Papou

Re Naubin1 le forum

voilà avec la liste classée Alpha

a+

papou

'Macro Faite par Pascal RICHARD Paritec le 12/04/2019
Option Explicit
Option Compare Text

Sub test()
    Dim d As Object, y&, i&, bb, j&, temp, x$
    Set d = CreateObject("Scripting.Dictionary")
    With Feuil1 ' modifier la source par la tienne
        For y = 2 To 157
        x = .Cells(y, 2)
            If x <> "" And Not d.exists(x) Then d.Add x, x
        Next y
        bb = d.keys()
        For i = 0 To UBound(bb)
            For j = 0 To UBound(bb)
                If bb(i) < bb(j) Then
                    temp = bb(i)
                    bb(i) = bb(j)
                    bb(j) = temp
                End If
            Next j
        Next i
        listbox1.List = bb
    End With
End Sub

Bonjour et merci papou pour ton aide,

Tu n'aurais pas quelque chose de plus simple du style si c'est déjà dans la liste alors je ne rentre pas le nom parce que j'ai du mal à adapter mon code au tien, fichier confidentielle...

Merci encore

j'ai trouvé ça

Function SupDoubles(lst As ListBox)
     Dim iPos As Integer
     iPos = 0
     'Si la listbox est vide il quitte la fonction
     If lst.ListCount < 1 Then Exit Function

     Do While iPos < lst.ListCount
     lst.Text = lst.List(iPos)
     'Verifie si le text existe deja

     If lst.ListIndex <> iPos Then
     'Si c'est le cas il supprime et garde la position iPos...
     lst.RemoveItem iPos
     Else
     'Si ce n'est pas le cas il change la position iPos...
     iPos = iPos + 1
     End If
     Loop
     'Utiliser pour désélectionner la dernière ligne
     lst.Text = "-"
End Function

que j'appelle comme ca

SupDoubles (ListBox1)

mais il me met une erreur 424 objet requis

Dernière question est ce que c'est possible de comparer les items de deux listes?

J'ai une liste1 avec Jean, Francois, henry

une liste 2 avec Fred, Simon, Jean

est ce que dans ma liste deux je peux mettre en valeurs (gras ou en couleur) le nom qui est à la fois dans ma liste1 et dans ma liste2? ici Jean

Bien cordialement

Bonjour Naubin1 le forum

voilà un classeur avec deux exemples

Pour remplir la listbox avec une liste sans doublon, au lieu de remplir avec des doublons et de les supprimer après coup!!!!

un exemple avec la liste brute et un exemple avec une liste classée

a+

Papou

77naubin1-v1.xlsm (27.87 Ko)

merci papou pour ton aide et nom c'est pas que je ne veux pas me sortir les doigts, c'est que le fichier comporte des liaisons ,20 onglets deux bonne centaines de nom les Userforms sont en lien avec d'autre classeurs etc...

Merci beaucoup pour ton aide en tous cas

Rechercher des sujets similaires à "retire item listbox"