Problème avec tableau [VBA] - VB/VBA/VBS - Programmation
MarshPosté le 27-06-2016 à 23:12:56
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
Marsh Posté le 27-06-2016 à 23:12:56
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 :
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