Dans ma macro, j'ai créé une collection dans laquelle je met des objets. Pour chaque élément que je mets, je rajoute une clé :
Code:
Collection.add objet, clé
Je sais qu'une des clés est "A", par exemple. Comment je fais pour parcourir la collection et tester l'existence de la clé pour savoir si c'est bien la clé "A" ?
En gros je voudrais tester l'existence de la clé "A" en parcourant la collection, un truc du genre :
Code:
for each C in Collection
if C("A") existe then
blabla
endif
next C
regarde peut être le code ci-dessous si il peut t'aider :
Code:
Dim macol As New Collection, x
macol.Add "monobjet", CStr("macle")
On Error Resume Next
x = macol.Item("macle")
On Error GoTo 0
If Not IsEmpty(x) Then MsgBox "ok existe"
Merci Pierrot93 !
C'est effectivement ce que j'avais fait (le code marche), mais j'aimerais justement éviter de passer par une gestion d'erreur... je n'ai pas trouvé d'autres moyens pour l'instant donc je pense que je vais être obligé de passer par là... mais si jamais qqun a une autre solution, je suis preneur !
sinon, une autre solution consisterait à utiliser un objet "dictionary" plutôt qu'une collection, pour cet objet, la méthode "exists" permet d'effectuer le test sans gestion d'erreur... A voir...
Code:
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d.Add "macle", "monobjet"
If d.exists("macle") Then MsgBox "ok existe"