Dictionnaire, vérification doublon

Hello,

Petite question, Je viens de créer un dictionnaire qui comprend:

  • un code unique (ISIN)
  • un ensemble d'instrument class objet dont un "BOOK"

La manipulation que je souhaite faire et de m'assurer d'un ISIN n'est pas présent dans 2 books differents.

Je souhaite donc que lorsque le code fait ses itérations qu'il me previenne via une message box si un ISIN est présent dans deux books differents.

PS: je viens de débuter avec les dictionnaires

Voilà comment j'ai commencé:

'Création d'un dictionnaire permettant d'identifier les doublons
Set dic0 = CreateObject("Scripting.dictionary")
    dic0.RemoveAll
'ISIN dans postion start
With sh_posST
    Dernligne = sh_posST.Range("B" & Rows.count).End(xlUp).Row
        For i = 2 To Dernligne
            If Not dic0.exists(sh_posST.Cells(i, 2).Text) Then
            dic0(sh_posST.Cells(i, 2).Text) = sh_posST.Cells(i, 2).Text
        Next i
Wend

Définir le book comme étant la colonne C de la feuille ShposST
With sh_posST
    DernLigne = sh_postST1.Sheets(1).Range("B" & Rows.count).End(xlUp).Row

    For ligne = 2 To DernLigne
        Set curInstr = New clsInstrumentData
        curInstr.Book = sh_shposST.Cells(i, 3).Value
        Call Dictionary.Add(ISIN, curInstr)   'pas sur de ma formulation ici'
    Next ligne
Wend

Il me faudrait un truc du genre:

If curInstr.book.exist then msgbox("ISIN présent dans deux books:" & ISIN

Merci une fois de plus pour vos lumières

J'ai lu beaucoup d'article/tuto sur les dicos, mais je retrouve pas la formulation pour faire ce que je cherche.

A savoir:

Une boucle pour définir mes clefs (ok je pense): ici ISIN

Une boucle pour définir une InstrClass (ok je pense) ici Book ET vérifier l'unicité de l'InstrClass (pas ok du tout)

Bonjour,

Avec Excel 2016 et Récupérer et transformer (Power Query), nul besoin de VBA.

Cdlt.

Bonjour,

Je ne suis pas un Expert, mais je vais essayer de t'aider de mon mieux

Je ne comprend pas ta ligne :

Call Dictionary.Add(ISIN, curInstr)

que cherches tu à faire ici ?

Pourquoi ne pas faire :

if not dic0.Exists(ISIN) then
    dic0.Add ISIN, curInstr
Else
    msgbox("ISIN présent dans deux books:" & ISIN)
end if

Si ce n'est pas ça je vais laisser le relais à Jean-Eric

Salut,

Jean Eric, toujours pas de Query de mon côté car poste de travail sans, impossible de l'installer et c'est pas la demande de mes managers.

En mettant la formulation en call je pensais que ça ajouter le curInstr au dictionnaire. C'est une formulation que j'ai récupéré d'un précédent code de dictionnaire sur le document qu'on me demande de refaire. Mais franchement si j'ai mis le commentaire en face c'est pas pour rien ... x)

Bonjour,

Peut être qu'avec un fichier exemple, si tu ne peux pas joindre une copie de ton fichier, nous pourrions t'aider de manière plus précise.

A plus !

Bon j'ai réussi à faire ma manip,

Juste une question avant de clore le sujet:

Maintenant que j'ai créé mon dictionnaire qui comprends une multitude d'information stockée en Instrument class. Je souhaite les afficher dans un tableau excel.

J'ai cru comprendre que l'usage de "debug.print" est indispensable. OK

Mais comment savoir ou printer ?

Par exemple si je veux que ma liste de clef soit en colonne A à partir de la ligne 5 ? Une idée.

Encore merci à la commu' z'etes au top !

Rechercher des sujets similaires à "dictionnaire verification doublon"