[Résolu] Doublons Combobox sur feuille excel (sans userform)

  • Initiateur de la discussion Initiateur de la discussion lolo62000
  • 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 !

lolo62000

XLDnaute Junior
Bonjour,
j'essaye déséspéremment de retirer les doublons dans une combobox directement sur une feuille, sans userform.
J'ai réussi avec le code suivant à la remplir, en utilisant la propriété ListFillRange

Private Sub Worksheet_Activate()
TEST = Range("D" & Rows.Count).End(xlUp).Row
ActiveSheet.ComboBox3.ListFillRange = "Présentation!D6😀" & TEST
End Sub

J'ai ensuite supprimé les valeurs de ListFillRange, et essyé ce code, pour une combobox remplie sans doublons:

Private Sub Worksheet_Activate()
For i = 6 To Sheets("Présentation").Range("D65536").End(xlUp).Row
ComboBox3 = Sheets("Présentation").Range("D" & i)
If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem Sheets("Présentation").Range("D6" & i)
Next i
End Sub


Malheureusement avec le deuxième code ma combobox ne se remplit même plus. 🙁
Une petite idée ce qui n'est pas correct.

Merci pour votre aide,
Bonne journée.

Laurent.

 
Bonjour,

Private Sub Worksheet_Activate()
For i = 6 To Sheets("Présentation").Range("D65536").End(xlUp).Row
ComboBox3 = Sheets("Présentation").Range("D" & i)
If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem Sheets("Présentation").Range("D6" & i)
Next i
End Sub
Bonjour,
Ceci n'est pas bon
Range("D6" & i)
Ce serait plutôt
Range("D" & i)

Essaye comme ceci:
Code:
Private Sub Worksheet_Activate()
    Dim i As Long
    With Sheets("Présentation")
        .ComboBox3.Clear
        For i = 6 To .Cells(.Rows.Count, "D").End(xlUp).Row
            .ComboBox3.AddItem .Range("D" & i)
        Next i
    End With
End Sub

Salutations
JJ
 
Salut Jacky67,

j'ai testé ta macro. Elle remplit bien la combobox, mais elle n'élimine pas les doublons.
Voici un exemple que j'ai créé vite fait pour tester le code.
Merci.

Laurent.
Re..
Je te conseille d'utiliser la méthode "dictionary" comme le préconise Pierrejean, bien plus approprié.
Rendre visible toutes les données avant de remplir les 'ComboBox'
Essaye comme ceci (pour le ComboBox3)
Code:
Private Sub Worksheet_Activate()
ComboBox3.Value = "Sélectionner..."
ComboBox1.Value = "Sélectionner..."
ComboBox2.Value = "Sélectionner..."
If FilterMode Then ShowAllData
'*************
'*************
Set dico = CreateObject("Scripting.dictionary")
For n = 6 To Range("D" & Rows.Count).End(xlUp).Row
  X = Range("D" & n)
  dico(X) = X
Next
ActiveSheet.ComboBox3.List = dico.keys
End Sub

JJ
 
- 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
3
Affichages
195
Réponses
5
Affichages
183
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
483
Réponses
5
Affichages
244
Réponses
3
Affichages
505
Retour