Bonjour,
Je cherche à alimenter un tableau à partir d'une plage de valeur tout en supprimant les doublons.
J'ai trouvé ce code tout fait sur Internet qui utilise un dictionnaire pour repérer les doublons. Ce code répond très bien à mon besoin sauf que le tableau ne se rempli pas ...
Avec des MsgBox, j'arrive à voir que les cellules s'incrémentent bien dans la boucle puis une fois sorti de celle-ci, je constate que seule la dernière valeur du tableau a été enregistrée.
Ci-dessous le code :
Code :
- Sub Macro1()
- Dim Tableau()
- Set MonDico = CreateObject("Scripting.Dictionary" )
- For Each c In Sheets("Feuil1" ).Range("A2:A292" )
- 'si la donnée n'existe pas encore dans le dictionnaire
- If Not MonDico.Exists(c.Value) Then
- 'on l'ajoute dans le dictionnaire
- MonDico.Add c.Value, c.Value
- 'et dans le tableau VBA
- ReDim Tableau(1 To MonDico.Count)
- Tableau(MonDico.Count) = c.Value
- End If
- Next c
- MsgBox Tableau(2)
- MsgBox Tableau(20)
- End Sub
|
Dans ma feuille, je trouve 20 valeurs différentes, sur les deux msgbox à la fin de mon code, le premier ne retourne rien (msgbox vide) et le second retourne bien la dernière valeur du tableau.
Ça fait deux heures que je planche dessus et je n'arrive pas à trouver la raison du pourquoi ça ne marche pas.
Merci d'avance pour vos réponses.
Message édité par jhonduff le 27-06-2016 à 23:14:38