Bonsoir le forum,
J’ai souvent à placer plusieurs ListBox (ou ComboBox) dans le même UserForm, et je voudrais savoir la manière correcte et/ou efficace à adopter devant la multiplicité des dictionnaires et des tableaux temporaires. Dois-je initier un seul dictionnaire et un seul tableau temporaire pour la multitude des listes, ou à chaque liste son dictionnaire et son tableau temporaire ? C'est vrai que j'ai testé, et les deux fonctionnent, mais bon, il ne faudrait pas faire n'importe quoi tout de même 🙂
Exemple :
Par avance merci pour la réponse,
Cordialement, Kim.
J’ai souvent à placer plusieurs ListBox (ou ComboBox) dans le même UserForm, et je voudrais savoir la manière correcte et/ou efficace à adopter devant la multiplicité des dictionnaires et des tableaux temporaires. Dois-je initier un seul dictionnaire et un seul tableau temporaire pour la multitude des listes, ou à chaque liste son dictionnaire et son tableau temporaire ? C'est vrai que j'ai testé, et les deux fonctionnent, mais bon, il ne faudrait pas faire n'importe quoi tout de même 🙂
Exemple :
Code:
Private Sub UserForm_Initialize()
Dim ws As Worksheet, rng As Range
Dim dico1 As Object, dico2 As Object, dico3 As Object
Dim temp1 As Variant, temp2 As Variant, temp3 As Variant
Set ws = Sheets("BD")
Set dico1 = CreateObject("Scripting.Dictionary")
Set dico2 = CreateObject("Scripting.Dictionary")
Set dico3 = CreateObject("Scripting.Dictionary")
For Each rng In Range(ws.[B2], ws.[B65000].End(xlUp))
If rng.Offset(, -1) = "Division-A" Then dico1(rng.Value) = rng.Value
Next rng
temp1 = dico1.items
Me.ListBox1.List = temp1
For Each rng In Range(ws.[B2], ws.[B65000].End(xlUp))
If rng.Offset(, -1) = "Division-B" Then dico2(rng.Value) = rng.Value
Next rng
temp2 = dico2.items
Me.ListBox2.List = temp2
For Each rng In Range(ws.[B2], ws.[B65000].End(xlUp))
If rng.Offset(, -1) = "Division-C" Then dico3(rng.Value) = rng.Value
Next rng
temp3 = dico3.items
Me.ListBox4.List = temp3
Set ws = Nothing
Set dico1 = Nothing
Set dico2 = Nothing
Set dico3 = Nothing
End Sub
Cordialement, Kim.