Bonjour ,
J'ai réussi à intégrer un code pour trier par ordre alphabétique un combobox qui affiche les noms en colonne C dans mon Userform. Cela marche et je vous en remercie, mais lorsque j'arrive à l'enregistrement du 13eme Contacts, le code fait une erreur.
L'erreur se situe surErreur d’exécution '9' L'indice n'appartient pas à la sélection.dans le module 1 Sub TriCD,
Code : Sélectionner tout - Visualiser dans une fenêtre à part temp = table(J, c): table(J, c) = table(i, c): table(i, c) = temp
Avec J=8 et c=10.
Sinon pour les 12 entrées précédentes, aucun problème. Le soucis c'est que j'ai 600 contacts à rentrer derrière qui sont stockées sur une base de données originale à part. Lorsque je fais copier coller des contacts, j'ai cette erreur. Mais juste lorsque j'en ai plus que 12. Comment résoudre cette erreur ?
Ci dessous le code de mon module
Et le code d'appel dans mon userform de mon module
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 Public nm As String, nminit As String Public flag As Integer, flg1 As Integer, flg2 As Integer Public tb(200) Sub Bouton1_Cliquer() flag = 0 UserForm1.Show End Sub Sub TriCD(table(), xn, col, ordre, nbcol) col = 0 ecart = xn ' tri shell Do While ecart >= 1 ecart = ecart \ 2 inv = True Do While inv inv = False For i = 0 To xn - ecart J = i + ecart If ordre Then X = (table(i, col) < table(J, col)) Else X = (table(i, col) > table(J, col)) End If If X Then inv = True For c = 0 To nbcol - 1 temp = table(J, c): table(J, c) = table(i, c): table(i, c) = temp Next End If Next Loop Loop ' Stop End Sub
Merci pour votre aide
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 .... With Me.ComboBox1 .ColumnCount = 2 Me.Label280.Visible = False For J = 3 To WS.Range("C" & Rows.Count).End(xlUp).Row .AddItem WS.Range("C" & J) .Column(1, .ListCount - 1) = J Next J 'Stop If Me.ComboBox1.ListCount < 1 Then Exit Sub col = 2 Dim a() a = Me.ComboBox1.List nbcol = UBound(a, 1) - LBound(a, 1) + 1 Call TriCD(a(), UBound(a), col - 1, False, nbcol) Me.ComboBox1.List = a End With ....
Partager