Combobox sans doublon et triee

bonjour tout le monde,

après avoir effectuer quelques recherche sur le web, je n'arrive toujours pas a rendre mes combobox triée et sans doublon, est ce que cela vient du code que j'utilise pour créer ma liste ou bien autre chose?

En tout état de cause, quelqu un aurait il la solution pour garder mon code actuel et inclure une programmation pour avoir une combobox sans doublon et triée par ordre croissant ?

Si en plus l'ame genereuse peut mettre un commentaire avec le code pour que je le comprenne au cas ou, ou si j'ai besoin de le dupliquer.

en vous remerciant.

Bonjour

Un essai à tester. Te convient-il ?

Bye !

169filtre-forum-v1.xlsm (29.78 Ko)

Euh comment dire,

Je peux pas te repondre j'ai une erreur qui me plante mon mac Excel.

Erreur active X.

Je vais essaye de rechercher le hic.

A moins que tu es une idée ?

Bonjour

Actuellement tu as déjà la ComboBox1 triée et sans doublon

La comboBox3 est sans doublon mais pas triée : Tu vas dans la feuille "Feuil3" et tu tris la colonne B (juste le N et le I )

Et c'est fini

Pas besoin de modifier ton code

En fait le but de faire disparaitre cette feuille et "prendre" les données uniquement dans le listing, c 'est pour cela que je recherche ce type de code.

En sachant que le listing peut évoluer avec de nouveaux critères.

L4avantage est de ne pas oublier d'inscrire de nouvelles données dans cette base, ce qui permet également de toujours avoir une combobox à jour.

Bonsoir

A tester

Bonjour,

Liste sans doublons triée MAC

Ceuzin

ps: A gmb

Quand on fait du copier/coller sur un site, on cite la source.

Faire une recherche dans Google:

a = f.Range("A3:A" & f.[A65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité

Bonjour Ceuzin

ceuzin a écrit :

Quand on fait du copier/coller sur un site, on cite la source.

Tu as raison sur le principe.

Mais si je devais citer la source de tout ce que j'ai appris depuis que je suis né, il y en aurait des sources !

Bye !

L'original

Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Set mondico = CreateObject("Scripting.Dictionary")
  a = f.Range("A2:A" & f.[A65000].End(xlUp).Row)   ' tableau a(n,1) pour rapidité
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
  Next i
  '--avec tri
  temp = mondico.keys
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.ComboBox1.List = temp
End Sub

Sub Tri(a, gauc, droi) ' Quick sort
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
        temp = a(g): a(g) = a(d): a(d) = temp
        g = g + 1: d = d - 1
     End If
   Loop While g <= d
   If g < droi Then Call Tri(a, g, droi)
   If gauc < d Then Call Tri(a, gauc, d)
End Sub 

La copie

Private Sub UserForm_Initialize()
  Set f = Sheets("Feuil3")
  Set mondico = CreateObject("Scripting.Dictionary")
  a = f.Range("A3:A" & f.[A65000].End(xlUp).Row)   ' tableau a(n,1) pour rapidité
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
  Next i
  '--avec tri
  temp = mondico.keys
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.ComboBox1.List = temp

  mondico.RemoveAll
    a = f.Range("B3:B" & f.[B65000].End(xlUp).Row)   ' tableau a(n,1) pour rapidité
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
  Next i
  '--avec tri
  temp = mondico.keys
  Call Tri(temp, LBound(temp), UBound(temp))
  Me.ComboBox3.List = temp
End Sub

Sub Tri(a, gauc, droi) ' Quick sort
  ref = a((gauc + droi) \ 2) ' l'antislah \ donne la partie entière d'une division
  g = gauc: d = droi
  Do
     Do While a(g) < ref: g = g + 1: Loop
     Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
        temp = a(g): a(g) = a(d): a(d) = temp
        g = g + 1: d = d - 1
     End If
   Loop While g <= d
   If g < droi Then Call Tri(a, g, droi)
   If gauc < d Then Call Tri(a, gauc, d)
End Sub

Ceuzin

Merci Mr pour vos codes, les 2 fonctionnes parfaitement sur le fichier de retour. a moi de creer un nouveau fichier pour voir si je l'ai compris.

Je vous remercie aussi d'avoir pris le temps d'expliquer les lignes a chaque fois, cela permet à tout le forum, debutant comme confirmer de comprendre les enchainements.

Bonne journée.

Eric

Rechercher des sujets similaires à "combobox doublon triee"