Bonsoir Hervé, le Forum
Hervé, très bonne question, en fait tout dépend de comment tu déclares/initialises et utilises cet Object Collection...
Je te conseille de lire ce Fil tout d'abord (même si le sujet n'a rien à voir) :
MSG BOX ET INPUTBOX Voir mon long Post du 25-04-04 17:15
Ensuite on va faire une démo de base :
Exemple 1
Citation:
OptionExplicit
Dim MyCollection As Collection
Sub GeneratingCollection()
Dim MyX AsByte
Dim MyItem AsVariant
Dim MyString
Set MyCollection = New Collection
For MyX = 65 To 90
MyCollection.Add Chr(MyX), CStr(MyX)
Next
ForEach MyItem In MyCollection
MyString = MyString & MyItem & vbCrLf
Next
MsgBox MyString
EndSub
|
Dans cette Démo pas de souci... mais maintenant on corse !!
Exemple 2
Citation:
OptionExplicit
Dim MyCollection As Collection
Sub GeneratingCollection()
Dim MyX AsByte
Set MyCollection = New Collection
For MyX = 65 To 90
MyCollection.Add Chr(MyX), CStr(MyX)
Next
TheNextMacro
EndSub
Sub TheNextMacro()
Dim MyItem AsVariant
Dim MyString
ForEach MyItem In MyCollection
MyString = MyString & MyItem & vbCrLf
Next
MsgBox MyString
EndSub
|
Et donc pour Finir, avec la Vidange !!!
Exemple 2
Citation:
OptionExplicit
Dim MyCollection As Collection
Sub GeneratingCollection()
Dim MyX AsByte
Set MyCollection = New Collection
For MyX = 65 To 90
MyCollection.Add Chr(MyX), CStr(MyX)
Next
Set MyCollection = Nothing
TheNextMacro
EndSub
Sub TheNextMacro()
Dim MyItem AsVariant
Dim MyString
ForEach MyItem In MyCollection
MyString = MyString & MyItem & vbCrLf
Next
MsgBox MyString
EndSub
|
Et évidemment ce dernièr exemple plante de la même manière que si le Dim de MyCollection n'était pas niveau Module mais inclus dans la Sub 'GeneratingCollection', donc le Set = Nothing a bien vidé MyCollection...
Bonne Soirée
@+Thierry