connaitre la position d'une donnée dans un dico

Le
merguez07
Bonjour à tous,

voilà pour accélérer ma comparaison de 2 listes j'ai créé un dico ou
j'ai mis une des 2 listes

Set dico = New Scripting.Dictionary

la question est la suivante
une fois que j'ai mis ma 1ere liste dans le dico je recherche pour
chacun des éléments de ma deuxième liste s 'il est contenu dans le dico

If dico.Exists(valeur en cours de la 2eme liste) then .

et là j'aimerai connaitre ou se trouve la valeur en cours dans le dico
(quel est le numéro de l'item concerné dans le dictionnaire)

je sais pas si j'ai été clair

Merci


L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #26360623
Bonjour,
Pourquoi un dictionnaire :
Sub test()
Dim Tabl(2) As String
Tabl(0) = "toto"
Tabl(1) = "titi"
Tabl(2) = "tutu"
MsgBox Application.Match("titi", Tabl, 0)
End Sub
Cordialement.
Daniel


Bonjour à tous,

voilà pour accélérer ma comparaison de 2 listes j'ai créé un dico ou j'ai mis
une des 2 listes

Set dico = New Scripting.Dictionary

la question est la suivante
une fois que j'ai mis ma 1ere liste dans le dico je recherche pour chacun des
éléments de ma deuxième liste s 'il est contenu dans le dico

If dico.Exists(valeur en cours de la 2eme liste) then ....

et là j'aimerai connaitre ou se trouve la valeur en cours dans le dico (quel
est le numéro de l'item concerné dans le dictionnaire)

je sais pas si j'ai été clair

Merci

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com
isabelle
Le #26360629
bonjour,

n = Application.Match("valeur en cours de la 2eme liste", MonDico.Items, 0)
valeur correspondant de la 1ere liste = Application.Index(MonDico.Keys,
Application.Match("valeur en cours de la 2eme liste", MonDico.Items, 0))

isabelle

Le 2015-07-18 08:34, merguez07 a écrit :
Bonjour à tous,

voilà pour accélérer ma comparaison de 2 listes j'ai créé un dico ou j'ai mis
une des 2 listes

Set dico = New Scripting.Dictionary

la question est la suivante
une fois que j'ai mis ma 1ere liste dans le dico je recherche pour chacun des
éléments de ma deuxième liste s 'il est contenu dans le dico

If dico.Exists(valeur en cours de la 2eme liste) then ....

et là j'aimerai connaitre ou se trouve la valeur en cours dans le dico (quel est
le numéro de l'item concerné dans le dictionnaire)

je sais pas si j'ai été clair

Merci

---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel
antivirus Avast.
http://www.avast.com

merguez07
Le #26360635
Bonjour Daniel,

en fait vu que me liste comprend environ 10000 items je pensais, au
regard de ce que j'ai lu sur internet, que l'utilisation d'un dico
permettait un gain significatif de temps de traitement

Xavier


Le 18/07/2015 14:53, DanielCo a écrit :
Bonjour,
Pourquoi un dictionnaire :
Sub test()
Dim Tabl(2) As String
Tabl(0) = "toto"
Tabl(1) = "titi"
Tabl(2) = "tutu"
MsgBox Application.Match("titi", Tabl, 0)
End Sub
Cordialement.
Daniel


Bonjour à tous,

voilà pour accélérer ma comparaison de 2 listes j'ai créé un dico ou
j'ai mis une des 2 listes

Set dico = New Scripting.Dictionary

la question est la suivante
une fois que j'ai mis ma 1ere liste dans le dico je recherche pour
chacun des éléments de ma deuxième liste s 'il est contenu dans le dico

If dico.Exists(valeur en cours de la 2eme liste) then ....

et là j'aimerai connaitre ou se trouve la valeur en cours dans le dico
(quel est le numéro de l'item concerné dans le dictionnaire)

je sais pas si j'ai été clair

Merci

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com






---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
merguez07
Le #26360634
Merci Isabelle

Xavier



Le 18/07/2015 16:04, isabelle a écrit :
bonjour,

n = Application.Match("valeur en cours de la 2eme liste", MonDico.Items, 0)
valeur correspondant de la 1ere liste = Application.Index(MonDico.Keys,
Application.Match("valeur en cours de la 2eme liste", MonDico.Items, 0))

isabelle

Le 2015-07-18 08:34, merguez07 a écrit :
Bonjour à tous,

voilà pour accélérer ma comparaison de 2 listes j'ai créé un dico ou
j'ai mis
une des 2 listes

Set dico = New Scripting.Dictionary

la question est la suivante
une fois que j'ai mis ma 1ere liste dans le dico je recherche pour
chacun des
éléments de ma deuxième liste s 'il est contenu dans le dico

If dico.Exists(valeur en cours de la 2eme liste) then ....

et là j'aimerai connaitre ou se trouve la valeur en cours dans le dico
(quel est
le numéro de l'item concerné dans le dictionnaire)

je sais pas si j'ai été clair

Merci

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel
antivirus Avast.
http://www.avast.com







---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
http://www.avast.com
DanielCo
Le #26360703
Bonjour,
Ce serait à essayer, mais je pense que si tu utilises une plage de
cellules au départ,
Tabl = Application.Transpose([A1:A10000])
doit être plus rapide que l'alimentation d'un dictionnaire.
Daniel


Bonjour Daniel,

en fait vu que me liste comprend environ 10000 items je pensais, au regard de
ce que j'ai lu sur internet, que l'utilisation d'un dico permettait un gain
significatif de temps de traitement

Xavier


Le 18/07/2015 14:53, DanielCo a écrit :
Bonjour,
Pourquoi un dictionnaire :
Sub test()
Dim Tabl(2) As String
Tabl(0) = "toto"
Tabl(1) = "titi"
Tabl(2) = "tutu"
MsgBox Application.Match("titi", Tabl, 0)
End Sub
Cordialement.
Daniel


Bonjour à tous,

voilà pour accélérer ma comparaison de 2 listes j'ai créé un dico ou
j'ai mis une des 2 listes

Set dico = New Scripting.Dictionary

la question est la suivante
une fois que j'ai mis ma 1ere liste dans le dico je recherche pour
chacun des éléments de ma deuxième liste s 'il est contenu dans le dico

If dico.Exists(valeur en cours de la 2eme liste) then ....

et là j'aimerai connaitre ou se trouve la valeur en cours dans le dico
(quel est le numéro de l'item concerné dans le dictionnaire)

je sais pas si j'ai été clair

Merci

---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com






---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
http://www.avast.com
Publicité
Poster une réponse
Anonyme