Bonjour au Forum
Je sollicite votre aide pour un problème "d'incompatibilité de type"
trouvé dans une procédure de tri que j'utilise souvent et grace au forum
celle-ci provient lorsque je souhaite remplir ma combobox avec des données
( feuille E ) situées en colonnes A et dont le nombre de caractère varie
Ici code de remplissage de la combobox6
Puis appel à la procedure de tri
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 Dim T As Object Dim c As Range Dim temp ComboBox6.Clear ' MAZ de la combobox Set T = CreateObject("Scripting.Dictionary") 'Remplissage de la ComboBox6 sans doublons With E For Each c In .Range("A3", .Cells(Rows.Count, 1).End(xlUp)) <= recherche des données colonne A If c.Value <> Empty Then T.Item(c.Value) = c.Value End If Next c End With temp = T.items Tri temp, LBound(temp), UBound(temp) <= appel à la procédure de tri ( init Forum ) Me.ComboBox6.List = temp Set T = Nothing
Cette procédure de tri marche très bien habituellement mais elle se plante sans je puisse en déterminer la cause sauf peut-être dans le fait que la recherche et le tri s'effectuent sur des données de longueur différente (?)
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 Public Sub Tri(Tableau, L As Integer, R As Integer) Dim G As Integer, D As Integer Dim Ref Ref = Tableau((L + R) \ 2) G = L D = R Do Do While Tableau(G) < Ref G = G + 1 Loop Do While Ref < Tableau(D) D = D - 1 Loop If G <= D Then <= Plantage ici pour incompatilité de type ?? temp = Tableau(G) Tableau(G) = Tableau(D) Tableau(D) = temp G = G + 1 D = D - 1 End If Loop While G <= D If G < R Then Tri Tableau, G, R If L < D Then Tri Tableau, L, D End Sub
Si quelqu'un avait une petite idée ce serait sympa
merci mille fois pour votre aide
A+
Partager