Empecher des doublons dans un Combobox

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

cpeens

XLDnaute Occasionnel
Bonjour à tous je cherche depuis quelque temps faire en sorte qu'une valeur apparaisse qu'une fois dans ma combobox même si dans ma BD elle reviens plusieur fois .
quelqu'un aurait il une idée svp merci.
 
Re : Empecher des doublons dans un Combobox

Bonjour hasco et merci pour ton aide ne maitrissant pas tous j'ai bien trouver le bout de code que tu m'à proposé soucis c'est que le mien est un peut plus complexe il recherche sur plusieur feuille et colonne.

Code:
Dim x As Long
 Dim Sht As Worksheet, Col As Integer, Lig As Long
  ' Définir la colonne de recherche
  Col = Me.ComboBox1.ListIndex + 1
  ' Pour chaque feuille
  For Each Sht In ThisWorkbook.Worksheets
    ' Si le début du nom de la feuille correspond
    If Left(Sht.Name, 3) = "SAS" Then
      ' Pour chaque ling
      For x = 2 To 4
      For Lig = 2 To 10
        ' Ajouter la valeur de la colonne sélectionnée
        Me.ComboBox2.AddItem Sht.Cells(Lig, x + Col)
       
      Next Lig

  Next x
End If
Next Sht

donc je vois pas trop comment ajouter celui ci

désolé mais la sa deviens un peu compliqué pour moi.
 
Re : Empecher des doublons dans un Combobox

Bonjour,

Combobox sans doublons

Méthode rapide (0,15 sec pour 5000 éléments)

Code:
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Set mondico = CreateObject("Scripting.Dictionary")
  For Each c In f.Range("a2:a" & f.[a65000].End(xlUp).Row)
     mondico.Item(c.Value) = c.Value
  Next c
  Me.ComboBox1.List = mondico.items
End Sub

Méthode lente (3,5sec pour 5000 éléments)

Code:
Private Sub UserForm_Initialize()
  For i = 1 To Sheets(1).[A65000].End(xlUp).Row
      Me.ComboBox1 = Sheets(1).Cells(i, "A")        ' on se positionne dans le combobox
      If Me.ComboBox1.ListIndex = -1 Then           ' Existe t-il?
        Me.ComboBox1.AddItem Sheets(1).Cells(i, "A")
      End If
   Next i
End Sub

Code:
Private Sub UserForm_Initialize()
 Dim x As Long
 Set mondico = CreateObject("Scripting.Dictionary")
 Dim Sht As Worksheet, Col As Integer, Lig As Long
  ' Définir la colonne de recherche
  Col = Me.ComboBox1.ListIndex + 1
  ' Pour chaque feuille
  For Each Sht In ThisWorkbook.Worksheets
    ' Si le début du nom de la feuille correspond
    If Left(Sht.Name, 3) = "SAS" Then
      ' Pour chaque ling
      For x = 2 To 4
      For Lig = 2 To 10
        ' Ajouter la valeur de la colonne sélectionnée
        temp = Sht.Cells(Lig, x + Col)
        If temp <> "" Then mondico.Item(temp) = temp
      Next Lig
   Next x
 End If
 Next Sht
 Me.ComboBox2.List = mondico.items
End Sub


JB
 
Dernière édition:
Re : Empecher des doublons dans un Combobox

bonjour boisgontier mais sauf erreur de ma part ta proposition recherche uniquement sur 1 Feuil et 1 collone.

alors que mon code actuel recherche sur plusieur feuils et collone.

merci tout de même
 
Re : Empecher des doublons dans un Combobox

Re bonjour,
hello Jacques🙂

Code:
Dim x As Long
Dim Sht As Worksheet, Col As Integer, Lig As Long
' Définir la colonne de recherche
Col = Me.ComboBox1.ListIndex + 1
' Pour chaque feuille
For Each Sht In ThisWorkbook.Worksheets
    ' Si le début du nom de la feuille correspond
    If Left(Sht.Name, 3) = "SAS" Then
        ' Pour chaque ling
        For x = 2 To 4
            For Lig = 2 To 10
                ' Ajouter la valeur de la colonne sélectionnée
                With Me.ComboBox2
                    .Text = Sht.Cells(Lig, x + Col)
                    If .ListIndex = -1 Then .AddItem Sht.Cells(Lig, x + Col)
                End With
            Next Lig
        Next x
    End If
Next Sht

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
2
Affichages
918
Retour