bonjour,
j'ai un problème assez embêtant
je fais un userform avec 4 combox
j'ai fait un "userform initializer" pour alimenter les "combox",
j'ai 4 "combox" en cascade dans un "user form" qui sont alimentées les une les autres avec "les private sub change".
au début de chacune des "private sub change" je nettoie mes listes avec ".clear"
en fait j'aimerai nettoyer mes listes sans que mon .clear ne renvoie à la "private sub combox" parent

suis je clair?

voici pour illustrer la chose le code d'une des combobox, le code fonctionne. mais quand je fais une recherche dans la liste de cette combobox, que je me place sur une autre combobox par exemple combobox pseudo, lors de l'exécution de la 2eme combobox, le pas à pas arrive sur "nomguilde.clear", et là il repart sur la "private sub monguilde" où il but sur le "pseudo.clear", bref ça boucle et ca m'efface les données de la combobox dans laquelle je suis!

c'est dur à expliquer

merci de m'éclairer si vous connaissez ce problème

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
private Sub nomguilde_Change()
 
'cellules
Dim Cell As Variant
Dim Cell2 As Variant
Dim Cell3 As Variant
Dim Cell4 As Variant
 
'collections tri permet d'éviter les doublons
Dim Unique As New Collection
Dim Unique2 As New Collection
Dim Unique3 As New Collection
 
'valeurs des cellules
Dim Valeur As Variant
Dim Valeur2 As Variant
Dim Valeur3 As Variant
 
'variables
Dim i As Integer
Dim j As Integer
Dim k As Integer
 
i = 2
j = 2
k = 2
l = 2
 
Dim choixnomguilde As String
choixnomguilde = nomguilde.Text
Dim choixpseudo As String
choixpseudo = pseudo.Text
Dim choixid As String
choixid = id.Text
Dim choixsymbole As String
choixsymbole = symbole.Text
 
nomguildetext = ""
idtext = ""
symboletext = ""
pseudotext = ""
 
pseudo.Clear
id.Clear
symbole.Clear
 
 
On Error Resume Next
While Worksheets("guilde").Cells(k, 5) <> ""
 
If Worksheets("guilde").Cells(k, 2).Value = choixnomguilde Then
Cell = Worksheets("guilde").Cells(k, 3).Value
Cell2 = Worksheets("guilde").Cells(k, 4).Value
Cell3 = Worksheets("guilde").Cells(k, 5).Value
 
nomguildetext = nomguilde.Text
symboletext = symboletext.Text + Worksheets("guilde").Cells(k, 3).Text & " ;"
pseudotext = pseudotext.Text + Worksheets("guilde").Cells(k, 4).Text & " ;"
idtext = idtext.Text + Worksheets("guilde").Cells(k, 5).Text & " ;"
 
Unique.Add Cell, CStr(Cell)
Unique2.Add Cell2, CStr(Cell2)
Unique3.Add Cell3, CStr(Cell3)
 
End If
 k = k + 1
Wend
On Error GoTo 0
 
For Each Valeur In Unique
     Me.symbole.AddItem Valeur
    Next Valeur
 
For Each Valeur2 In Unique2
     Me.pseudo.AddItem Valeur2
    Next Valeur2
 
For Each Valeur3 In Unique3
     Me.id.AddItem Valeur3
    Next Valeur3
 
 
    Me.symbole.List = ListSort(Me.symbole.List)
    Me.pseudo.List = ListSort(Me.pseudo.List)
    Me.id.List = ListSort(Me.id.List)
 
End Sub