Bonjour,

Je voudrais savoir comment vider correctement la mémoire après avoir utilisé un objet de type Dictionary, contenant lui-même des objets de type Dictionary. Grossièrement, j'ai déclaré mes variables de cette manière :
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
' Declaration et initialisation
Dim list As Object: Set list = CreateObject("Scripting.Dictionary")
Dim sublist1 As Object: Set sublist1 = CreateObject("Scripting.Dictionary")
Dim sublist2 As Object: Set sublist2 = CreateObject("Scripting.Dictionary")
Dim sublist3 As Object: Set sublist3 = CreateObject("Scripting.Dictionary")
 
' Ajout dans la sous liste 1
sublist1.Add "Name", "Module 1"
sublist1.Add "Optional", False
 
' Ajout dans la sous liste 2
sublist2.Add "Name", "Module 2"
sublist2.Add "Optional", True
 
' Ajout dans la sous liste 3
sublist3.Add "Name", "Module 3"
sublist3.Add "Optional", False
 
' Ajout des sous listes dans la liste principale
list.Add "Mod1", sublist1
list.Add "Mod2", sublist2
list.Add "Mod3", sublist3
A la fin du traitement, je ne sais pas s'il suffit de vider la liste principale : ou bien de vider aussi les sous listes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Set sublist1 = Nothing
Set sublist2 = Nothing
Set sublist3 = Nothing
Set list = Nothing
ou encore de vider les sous listes et en plus les éléments de la liste principale :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Set sublist1 = Nothing
Set sublist2 = Nothing
Set sublist3 = Nothing
For Each key In list
    list.Item(key) = Nothing
Next
Set list = Nothing