Bonjour, dans une condition spécifique j'ai le message : Erreur '9' l'indice n'appartient pas à la sélection
J'ai une fonction sur un UserForm Initialize qui monte une liste triée:
J'appelle la procédure TRI:
Lorsque je suis sur la feuille "Table de Données", que je lance l'interface ça fonctionne correctement et la liste se monte triée.
Par contre si je suis sur une autre feuille j'ai le message: Erreur '9' l'indice n'appartient pas à la sélection
Est-ce que quelqu'un peut m'éclairer SVP et m'indiquer où peut se trouver le problème.
Merci
solgti
J'ai une fonction sur un UserForm Initialize qui monte une liste triée:
Private Sub UserForm_Initialize()
Dim temp()
Set f = Sheets("Table de Données")
Set mondico = CreateObject("Scripting.Dictionary")
a = f.Range("A2:a" & f.[a1048576].End(xlUp).Row).Value
For i = LBound(a) To UBound(a)
mondico(a(i, 1)) = ""
Next i
temp = mondico.keys ' dans un tableau pour tri
Call Tri(temp, LBound(temp), UBound(temp))
Me.LstPF.List = Application.Transpose(temp)
Set mondico = Nothing ' libère mondico
End Sub
Dim temp()
Set f = Sheets("Table de Données")
Set mondico = CreateObject("Scripting.Dictionary")
a = f.Range("A2:a" & f.[a1048576].End(xlUp).Row).Value
For i = LBound(a) To UBound(a)
mondico(a(i, 1)) = ""
Next i
temp = mondico.keys ' dans un tableau pour tri
Call Tri(temp, LBound(temp), UBound(temp))
Me.LstPF.List = Application.Transpose(temp)
Set mondico = Nothing ' libère mondico
End Sub
J'appelle la procédure TRI:
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
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
Lorsque je suis sur la feuille "Table de Données", que je lance l'interface ça fonctionne correctement et la liste se monte triée.
Par contre si je suis sur une autre feuille j'ai le message: Erreur '9' l'indice n'appartient pas à la sélection
Est-ce que quelqu'un peut m'éclairer SVP et m'indiquer où peut se trouver le problème.
Merci
solgti