OVH Cloud OVH Cloud

Définir un ensemble

4 réponses
Avatar
garnote
Bonsoir, Bonsoir,

Je tente de me dépatouiller avec New Collection mais
j'ai une misère du maudit !
Comment faire pour ajouter un item à une collection
et éviter les doublons. Il doit y avoir du Key là-dedans
mais l'aide n'est pas terrible à ce sujet !

Serge

4 réponses

Avatar
Daniel.M
Bonjour Serge,

Tu dois procéder par On Error Resume Next.

Une autre implantation merdique où on retourne une erreur système mais je
m'égare encore.

Utilise les objets Dictionary
Dim D as Object
Set D = CreateObject("Scripting.Dictionary")

Il y a un fichier d'aide sur le site de MS.

C'est plus intelligent et la méthode D.Exists(nouveauNom) te permet de connaître
facilement si l'entrée existe déjà au lieu de t'en remettre à la gestion des
erreurs VBA (sûrement plus lent).

Salutations,

Daniel M.

"garnote" wrote in message
news:S8Lyb.74222$
Bonsoir, Bonsoir,

Je tente de me dépatouiller avec New Collection mais
j'ai une misère du maudit !
Comment faire pour ajouter un item à une collection
et éviter les doublons. Il doit y avoir du Key là-dedans
mais l'aide n'est pas terrible à ce sujet !

Serge




Avatar
garnote
Salut Daniel,

Super, mais je ne retrouve plus celle qui va sauver le monde !

Sub Ensemble()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d.Add 9, 9
For i = -3 To 3
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
d.Add "Jovovich", "Jovovich"
For i = -5 To 5
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
MsgBox d.Count & " " & d.Item(5) ' ???
End Sub

;-)))

Bruce



"Daniel.M" a écrit dans le message de
news: OC$t#
Bonjour Serge,

Tu dois procéder par On Error Resume Next.

Une autre implantation merdique où on retourne une erreur système mais je
m'égare encore.

Utilise les objets Dictionary
Dim D as Object
Set D = CreateObject("Scripting.Dictionary")

Il y a un fichier d'aide sur le site de MS.

C'est plus intelligent et la méthode D.Exists(nouveauNom) te permet de
connaître

facilement si l'entrée existe déjà au lieu de t'en remettre à la gestion
des

erreurs VBA (sûrement plus lent).

Salutations,

Daniel M.

"garnote" wrote in message
news:S8Lyb.74222$
Bonsoir, Bonsoir,

Je tente de me dépatouiller avec New Collection mais
j'ai une misère du maudit !
Comment faire pour ajouter un item à une collection
et éviter les doublons. Il doit y avoir du Key là-dedans
mais l'aide n'est pas terrible à ce sujet !

Serge








Avatar
Daniel.M
Serge,

Dans une collection ou un object Dictionary, les indices des éléments ne
correspondent pas à un indice dans un tableau mais bien au contenu de la clé.
C'est bien là leur avantage (sinon tu utiliserais un tableau).

Tu devrais chercher pour D.item(25) et tu trouverais (avec ceux-ci également: 9
4 1 0 16 "Jovovich").

Ou sinon, précise tes résultats attendus.

Salutations,

Daniel M.

"garnote" wrote in message
news:p7Myb.74758$
Salut Daniel,

Super, mais je ne retrouve plus celle qui va sauver le monde !

Sub Ensemble()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d.Add 9, 9
For i = -3 To 3
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
d.Add "Jovovich", "Jovovich"
For i = -5 To 5
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
MsgBox d.Count & " " & d.Item(5) ' ???
End Sub

;-)))

Bruce



"Daniel.M" a écrit dans le message de
news: OC$t#
Bonjour Serge,

Tu dois procéder par On Error Resume Next.

Une autre implantation merdique où on retourne une erreur système mais je
m'égare encore.

Utilise les objets Dictionary
Dim D as Object
Set D = CreateObject("Scripting.Dictionary")

Il y a un fichier d'aide sur le site de MS.

C'est plus intelligent et la méthode D.Exists(nouveauNom) te permet de
connaître

facilement si l'entrée existe déjà au lieu de t'en remettre à la gestion
des

erreurs VBA (sûrement plus lent).

Salutations,

Daniel M.

"garnote" wrote in message
news:S8Lyb.74222$
Bonsoir, Bonsoir,

Je tente de me dépatouiller avec New Collection mais
j'ai une misère du maudit !
Comment faire pour ajouter un item à une collection
et éviter les doublons. Il doit y avoir du Key là-dedans
mais l'aide n'est pas terrible à ce sujet !

Serge












Avatar
garnote
J'ai retouvé Mila,

Sub Ensemble()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d.Add 9, 9
For i = -3 To 3
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
d.Add "Jovovich", "Jovovich"
For i = -5 To 5
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
n = d.items
MsgBox "Nombre d'éléments : " & d.Count _
& Chr(10) & "Le cinquième élément : " & n(4)
End Sub

Serge






"Daniel.M" a écrit dans le message de
news:
Serge,

Dans une collection ou un object Dictionary, les indices des éléments ne
correspondent pas à un indice dans un tableau mais bien au contenu de la
clé.

C'est bien là leur avantage (sinon tu utiliserais un tableau).

Tu devrais chercher pour D.item(25) et tu trouverais (avec ceux-ci
également: 9

4 1 0 16 "Jovovich").

Ou sinon, précise tes résultats attendus.

Salutations,

Daniel M.

"garnote" wrote in message
news:p7Myb.74758$
Salut Daniel,

Super, mais je ne retrouve plus celle qui va sauver le monde !

Sub Ensemble()
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d.Add 9, 9
For i = -3 To 3
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
d.Add "Jovovich", "Jovovich"
For i = -5 To 5
If d.exists(i ^ 2) = False Then d.Add i ^ 2, i ^ 2
Next i
MsgBox d.Count & " " & d.Item(5) ' ???
End Sub

;-)))

Bruce



"Daniel.M" a écrit dans le message de
news: OC$t#
Bonjour Serge,

Tu dois procéder par On Error Resume Next.

Une autre implantation merdique où on retourne une erreur système mais
je



m'égare encore.

Utilise les objets Dictionary
Dim D as Object
Set D = CreateObject("Scripting.Dictionary")

Il y a un fichier d'aide sur le site de MS.

C'est plus intelligent et la méthode D.Exists(nouveauNom) te permet de
connaître

facilement si l'entrée existe déjà au lieu de t'en remettre à la
gestion



des
erreurs VBA (sûrement plus lent).

Salutations,

Daniel M.

"garnote" wrote in message
news:S8Lyb.74222$
Bonsoir, Bonsoir,

Je tente de me dépatouiller avec New Collection mais
j'ai une misère du maudit !
Comment faire pour ajouter un item à une collection
et éviter les doublons. Il doit y avoir du Key là-dedans
mais l'aide n'est pas terrible à ce sujet !

Serge