supprimer les doublons d'une listbox

  • Initiateur de la discussion Initiateur de la discussion brux40
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

brux40

XLDnaute Nouveau
Bonjour,

J'ai actuellenment un problème. Je n'arrive pas enlever les doublons d'une listbox dans un userform. Je débute avec VBA.
J'ai déjà réussi en supprimer toutes les lignes vides dans la userform.

Mais la je sèche

Private Sub UserForm_Initialize()

'choix du moteur
Dim i As Range

'efface le contenu de la listbox
ListBoxmodmot.Clear
'avec la feuille base de donnée.
With Sheets("base de donnee")
'ne pas oublié le "." devant range sinon il prend les valeurs de la feuille active
For Each i In .Range("B3:B5000")
If i <> "" Then ListBoxmodmot.AddItem i

Next i
End With

End Sub




Merci d'avance de votre aide
 
Re : supprimer les doublons d'une listbox

Re,

Dans ces cas là, il faut donner tes tentatives de codes(adaptation de ce que tu as trouvé), pour qu'on puisse te montrer ce qui ne va pas.

Code:
Private Sub UserForm_Initialize()
'choix du moteur
    Dim i As Integer
    Dim Valeurs As Variant
    Dim sDic As Object
    Set sDic = CreateObject("Scripting.Dictionary")
    'efface le contenu de la listbox
    ListBoxmodmot.Clear
    'avec la feuille base de donnée.
    With Sheets("base de donnee")
        'Pour aller plus vite on charge les valeurs dans un tableau
        Valeurs = .Range("B3:B5000").Value
        For i = LBound(Valeurs) To UBound(Valeurs)
            If Not IsEmpty(Valeurs(i, 1)) Then sDic(Valeurs) = ""
        Next i
    End With
    If IsArray(Valeurs) Then ListBoxmodmot.List = Valeurs
End Sub
A+
 
Dernière modification par un modérateur:
Re : supprimer les doublons d'une listbox

Dim i As Integer
Dim Valeurs As Variant
Dim sDic As Object
Set sDic = CreateObject("Scripting.Dictionary")
'efface le contenu de la listbox
ListBoxmodmot.Clear
'avec la feuille base de donnée.
With Sheets("base de donnee")
'Pour aller plus vite on charge les valeurs dans un tableau
Valeurs = .Range("B3:B5000").Value
For i = LBound(Valeurs) To UBound(Valeurs)
If Not IsEmpty(Valeurs(i, 1)) Then sDic(Valeurs) = ""
Next i
End With
If IsArray(Valeurs) Then ListBoxmodmot.List = Valeurs
 
Re : supprimer les doublons d'une listbox

Re,

voici qui est corrigé, mais tu n'as pas du lire la charte du forum correctement, sinon tu aurais joint un fichier exemple représentant ton problème. Cela nous aurait évité de tourner en rond. J'ai du créer moi-même l'exemple pour me rendre compte de l'erreur!!!!!

Code:
Private Sub UserForm_Initialize()
 'choix du moteur
     Dim i As Integer
     Dim Valeurs As Variant
     Dim sDic As Object
     Set sDic = CreateObject("Scripting.Dictionary")
     'efface le contenu de la listbox
     ListBoxmodmot.Clear
     'avec la feuille base de donnée.
     With Sheets("base de donnee")
         'Pour aller plus vite on charge les valeurs dans un tableau
         Valeurs = .Range("B3:B5000").Value
         For i = LBound(Valeurs) To UBound(Valeurs)
             If Not IsEmpty(Valeurs(i, 1)) Then sDic(Valeurs(i, 1)) = ""
         Next i
     End With
     If IsArray(Valeurs) Then ListBoxmodmot.List = sDic.keys
 End Sub

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
289
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
292
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
362
Réponses
5
Affichages
264
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
508
Retour