Bonjour,
Je me permet de poster ce message afin d'avoir votre aide sur la création d'une liste sur combobox mais qui s'alimente sur plusieurs colonnes en enlevant les doublons.
J'ai consulté le site de Jacques Boisgontier qui est vraiment très efficace Http://boisgontierjacques.free.fr/
Je souhaite réaliser une liste dans combobox sans doublons :
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
Ce code est particulièrement rapide et efficace ...
Le problème c'est que je souhaite faire une liste sans doublon mais qui s'alimente avec beaucoup de bases de données.
Autrement dit, je souhaite faire une seule et même liste d'une seule colonne mais qui va s'alimenter sur plusieurs colonnes (Toujours sans doublon) :
- Combobox avec 1 colonne
- Avec colonne A de la feuille 1
- + colonne A de la feuille 2
- + colonne A de la feuille 3
- Etc ...
Merci beaucoup de votre aide précieuse !
Je me permet de poster ce message afin d'avoir votre aide sur la création d'une liste sur combobox mais qui s'alimente sur plusieurs colonnes en enlevant les doublons.
J'ai consulté le site de Jacques Boisgontier qui est vraiment très efficace Http://boisgontierjacques.free.fr/
Je souhaite réaliser une liste dans combobox sans doublons :
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
Ce code est particulièrement rapide et efficace ...
Le problème c'est que je souhaite faire une liste sans doublon mais qui s'alimente avec beaucoup de bases de données.
Autrement dit, je souhaite faire une seule et même liste d'une seule colonne mais qui va s'alimenter sur plusieurs colonnes (Toujours sans doublon) :
- Combobox avec 1 colonne
- Avec colonne A de la feuille 1
- + colonne A de la feuille 2
- + colonne A de la feuille 3
- Etc ...
Merci beaucoup de votre aide précieuse !