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

  • Initiateur de la discussion Initiateur de la discussion iliess
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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 ?
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

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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
505
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
250
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
639
Retour