Public Function Add(k As String, i As Variant , Optional ByVal Overwrite_Item As Boolean = False)
x = Application.IfError(Application.Match(k, Key, 0), 0)
If Not CBool(x) Then
a = UBound(Key) + 1: ReDim Preserve Key(1 To a): ReDim Preserve Item(1 To a): Key(a) = k
If IsObject(i) Then Set Item(a) = i Else Item(a) = i
Else
If Overwrite_Item Then If IsObject(i) Then Set Item(x) = i Else Item(x) = i Else Err.Raise 457, "Dictionary", "Cette clé est déjà associée à un élément de cette collection"
End If
End Function
Dim dico As dictionary
Sub dest()
Dim k, it
Set dico = New dictionary
dico.Add "toto", "25" 'sur un dictionary la clé 1 et pas "1" est possible!
dico.Add "toto", Range("A2"), True
dico.Add "toto", "25"
End Sub
dico.items(1)=dico.items(1)+1 'property'
a ben ca c'est nouveau !!!sur un dictionary la valeur et la clé ne son pas optionnel!
Sub test()
Set dico = CreateObject("scripting.dictionary")
dico("toto") = ""
dico("titi") = ""
dico("riri") = ""
dico("fifi") = ""
dico("loulou") = ""
k = dico.keys
it = dico.items
For Each elem In dico
MsgBox elem
Next
End Sub
Sub test()
Set dico = CreateObject("scripting.dictionary")
dico("toto") = 25
dico("titi") = 33
dico("riri") = 41
dico("fifi") = 25
dico("loulou") = 12
k = dico.keys
For Each elem In dico
i = i + 1:
MsgBox elem & "--->" & dico(k(i - 1))
Next
End Sub
J'ai commencé une version vendredi, mais je suis pas tout le temps dessusre
robert
et avec des items et la lecture de l'item
Code:Sub test() Set dico = CreateObject("scripting.dictionary") dico("toto") = 25 dico("titi") = 33 dico("riri") = 41 dico("fifi") = 25 dico("loulou") = 12 k = dico.keys For Each elem In dico i = i + 1: MsgBox elem & "--->" & dico(k(i - 1)) Next End Sub
RYU
mais c'est là ou le truc il est formidable avec ma dernière version
c'est que oui le reverse va certainement faire des doublons dans les clé
mais des doublons paires(cle/items) non
le reverse et tout y cointi je ne pourrais pas le faire avec un object collection sans justement provoquer l'erreur
je vous le redonne la V4 sans collection elle encore un peu évoLU2
mais j' ai encore 2/3 choses a consolider
si vous arrivez a faire tout ca avec un vrai dico ou collection j'abandonne le vba