Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Remplir un dictionnaire a partir d'un Tableau VBA

iliess

XLDnaute Occasionnel
Bonjour
je souhaite remplir un dictionnaire "DicLe" a partir d'un tableau "Arr" en utilisent le fonction concaténer et coller resultat dans la colonne O
voici le code qui bloc dans la partie remplissage du dictionnaire

VB:
Sub Test()
Dim DicLe As Object
Dim ShOv As Worksheet
Dim Arr
Dim LignA As Long
'=============================================================
Set ShOv = ThisWorkbook.Worksheets("test")
LignA = ShOv.Cells(ShOv.Rows.Count, 1).End(xlUp).Row
Arr = ShOv.Range("A2:N" & LignA).Value
Set DicLe = CreateObject("Scripting.Dictionary")
'============================================================
For i = LBound(Arr, 1) To UBound(Arr, 1)
      
        DicLe(i) = Arr(i, 8) & "_" & Arr(i, 1) & "_" & Arr(i, 13) & "_" & Arr(i, 14)
  
Next i
'============================================================
ShOv.Range("O2") = DicLe
End Sub

Merci
 

Pièces jointes

  • test.xlsx
    10 KB · Affichages: 8
Solution
Re,

J'avais commencé avec deux méthodes sans dico donc je publie (voir fichier joint)
Les codes sont dans module1.

Je vais vous proposer un code avec dico.

Mais j'ai un gros doute ?
Dans votre code la clef du dico est le numéro de ligne. Si vous voulez comparer un tableau avec un autre, je pense que vous désirer comparez les clefs et non pas les numéros de ligne.
Et dans ce cas, la concaténation doit être la clef et l'item le numéro de ligne de la clef (pour localiser la ligne correspondant à la clef), non ?

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

J'avais commencé avec deux méthodes sans dico donc je publie (voir fichier joint)
Les codes sont dans module1.

Je vais vous proposer un code avec dico.

Mais j'ai un gros doute ?
Dans votre code la clef du dico est le numéro de ligne. Si vous voulez comparer un tableau avec un autre, je pense que vous désirer comparez les clefs et non pas les numéros de ligne.
Et dans ce cas, la concaténation doit être la clef et l'item le numéro de ligne de la clef (pour localiser la ligne correspondant à la clef), non ?
 

Pièces jointes

  • iliess- concaténation- v1.xlsm
    17.7 KB · Affichages: 13

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

Une méthode pour à la fin disposer d'un dico des clefs avec les numéros de ligne associés.

Attention! Si des clefs en double existent, alors le dico ne contiendra qu'une seule clef pour toutes les clés en double et le numéro de ligne correspondant à cette clef (donc l'item) sera le numéro de ligne de la dernière occurrence de la clef.
 

Pièces jointes

  • iliess- concaténation- v2.xlsm
    18.5 KB · Affichages: 16

iliess

XLDnaute Occasionnel
Re,
waaaaaahowww
c'est du top des top
a 1000 pour cent pas de doublons c'est pour ca que j'ai concaténer 4 caractère pour obtenir une clé unique.
mon fichier contient plus de 200000 lignes donc je vais teste a laide d'un timer le temps d'exécution de chaque code et je vais utiliser bien sur le plus rapide.
Mr je suis très ravi d'apprendre vba de quelqu'un comme vous.
merci encor une fois
 

Discussions similaires

Réponses
12
Affichages
451
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…