Bonjour A tous,
Je dispose d'une listbox fonctionnelle à 1 colonne qui:
- recherche le contenu de la colonne F des pages définies dans mon fichier
- trie les items et supprime les doublons
Je souhaiterai élargir cette listbox aux colonnes H, I et J (à fins de restitution ultérieure dans une fiche de synthèse)
Mais mes "retouches" du code l'invalident ou bien le résultat escompté n'apparaît pas (affiche uniquement la colonne F!)
ci joint le ode à adapter:
Quelle(s) variable(s) devrais-je modifier?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Private Sub ComboBox1_Click() Dim F As Object Dim MonDico As Object Dim bd As Variant Dim i As Integer Dim temp As Variant Me.TextBox1 = ComboBox1 Me.ListBox1.Clear Set F = Sheets(Me.TextBox1.Text) Set MonDico = CreateObject("Scripting.Dictionary") bd = F.Range("F9:J" & F.[F65000].End(xlUp).Row) ' tableau bd(n,1) pour rapidité For i = LBound(bd) To UBound(bd) If bd(i, 1) <> "" Then MonDico(bd(i, 1)) = "" Next i Me.ListBox1.List = MonDico.keys Me.ListBox1.ColumnCount = 5 '--avec tri temp = MonDico.keys Call Tri(temp, LBound(temp), UBound(temp)) Me.ListBox1.List = temp End Sub Sub Tri(a, gauc, droi) ' Quick sort Dim ref As String Dim g As Variant Dim d As Variant Dim temp As Variant 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
Merci d'avance pour vos lumières!
Partager