Bonjour, cela fait un moment que je laisse de côté ce problème. Je cherche à remplir une ListBox, j'y parviens sans souci.

Le souci, c'est que je souhaite la remplir sans doublon j'ai donc créé une boucle pour supprimer les doublons. A l’exécution de la procédure, le module se met en erreur et le userform ne s'ouvre pas. Un message indique : "Incompatibilité de type"


Je suis novice et l'erreur est peut être évidente ...

Peut être existe-il un moyen plus simple de remplir une listBox sans doublon... ?


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
 
Sub remplir ListBox
 
Dim i As Integer, Derlig As Integer
ListBox1.Clear
  x = ActiveSheet.Name
With Sheets(x)
Derlig = .Cells(65536, 1).End(xlUp).Row
    For i = 12 To Derlig
        ListBox1.AddItem .Cells(i, 1).Value
    Next i
    End With
 
 
SupDoubles ListBox1
 
 
End sub 
 
 
Private Sub SupDoubles(ListBox1 As ListBox)
'Supprimer les doublons de la list box 1
 
     Dim iPos As Integer
 
     iPos = 0
     'Si la listbox est vide il quitte la fonction
     If ListBox1.ListCount < 1 Then Exit Sub
 
     Do While iPos < ListBox1.ListCount
     ListBox1.Text = ListBox1.List(iPos)
     'Verifie si le text existe deja
 
     If ListBox1.ListIndex <> iPos Then
     'Si c'est le cas il supprime et garde la position iPos...
     ListBox1.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
     ListBox1.Text = "-"
 
End Sub