XL 2013 CreateObject("scripting.dictionary") et/ou variable tableau ?

BenHarber

XLDnaute Occasionnel
Bonjour le Forum,
J'ai trouvé la fonction VBA suivante sur développez.net (merci Mchel M) qui me permet de compter sans doublon les enregistrements d'une plage de cellules. Elle fonctionne bien (même si je ne vois pas trop à quoi CreateObject("scripting.dictionary") correspond...)

A présent, je souhaiterais utiliser les différentes valeurs trouvées dans cette plage de cellules. Je pensais pour cela les enregistrer dans une variable tableau [du type : monTab(0 à n)] : ma question est de savoir si je peux pour cela utiliser "dico" (?) ou si je dois obligatoirement créer une nouvelle variable tableau ?
Merci d'avance pour vos idées toujours constructives !
BH
Function compter_uniques(plage As Range) As Long

Set dico = CreateObject("scripting.dictionary")
For Each cellule In plage
ref = cellule.Value
If Not dico.exists(ref) Then
dico.Add ref, ref
End If
Next
compter_uniques = dico.Count
End Function
 

mapomme

XLDnaute Barbatruc
Supporter XLD
PS: Ton PC est mort cet matin
Et tu as déjà tout réinstallé sur le nouveau?
Bravo!

La tâche a été confiée au technicien du site qui en a toujours trois à quatre sous le coude en préparation car nous passons les derniers retardataires de Win7 en Win10. Il a tous les outils pour transférer les données de l'ancien vers le nouveau et en plus on a une sauvegarde automatique et continue dans notre cloud (du moins pour ma pomme - j'avais accepté d'être testeur). Son efficacité m'a malgré tout surpris.
 

Staple1600

XLDnaute Barbatruc
Re

Avant d'aller au dodo
J'ai tué des processus
Seul Excel est ouvert (en mode sans échec)
(plus les trucs à Windows en tâche de fond)
Et donc
Durée = 4,11 sec.
500 000 éléments au départ -> 318 839 sans doublon.

Bonne nuit à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 188
dernier inscrit
evebar