dico si j'ai bien compris ça va servir en quelque sorte de stocker les valeurs lues.
Oui mais avec une particularité : si j'y stocke 2 fois la même valeur, dico n'en conserve qu'une. Cela permet d'avoir des listes sans doublon.
J'ai n'ai pas très bien compris l'utilisation de la fonction For i = 1 To UBound(tablo1, 1)
Une variable tableau (appelée ici tablo1) permet de stoker d'un coup toutes les valeurs d'un tableau défini sur une feuille Excel.
UBound (tablo,1) donne le nombre de lignes qu'il y a dans ce tableau.
Donc, en faisant une boucle de 1 à UBound(tablo,1), on peut passer toutes les valeurs de la premières colonne du tableau.
...et la fonction For i = 0 To dico2.Count - 1
Pour un dictionnaire, (ici dico2) le nombre de valeurs qu'il contient est donné par l'instruction : dico2.count.
De plus, si on a pris soin d'écrire qu'une autre variable (ici k2) a été définie par l'instruction : k2 = dico2.keys
on peut se servir d'elle pour passer toutes les données que contient dico2.
Ainsi, k2(0) donnera le premier nom de dico2, k2(1) donnera le 2° nom etc...
On pourra donc lister tous les noms du dictionnaire en faisant varier le paramètre de k2 de 0 à dico.count -1 (puisqu'on a commencé à les compter à 0 et non pas à 1).
derln = fb.Range("A" & Rows.Count).End(xlUp)(2).Row
Non, ce n'est pas pour reclasser les doublons et les nouveaux noms, c'est plus précisément pour donner à la variable derln le numéro de la dernière cellule non vide de la colonne A en partant du bas (tout en bas de la feuille) et en remontant, comme si on sélectionnait la cellule A1000000 et si on faisait alors un Ctrl + flèche vers le haut. La cellule active serait la première cellule non vide.
Et on ajoute le "(2)" justement pour avoir la cellule immédiatement au dessous.
OK ?
Bye !