Besoin de debuggage pour l'extraction des doublons d'une liste

chappyporfaro

XLDnaute Junior
Bonjour le forum,

Avec du codes pigé ça et là, je me suis monté une sub pour extraire dans une nouvelle feuille les doublons d'une plage sélectionnée.

Comme vous pourrez le constater dans le fichier joint, en gros, ça fonctionne bien sauf que la dernière donnée se perd dans les limbes. Dans cet exemple, "fff" disparaît du résultat malgré que cette donnée fasse partie de la chaîne.

Pouvez-vous m'aider s'il-vous-plaît?

Merci
 

Pièces jointes

  • Doublons.xlsm
    15.2 KB · Affichages: 56
  • Doublons.xlsm
    15.2 KB · Affichages: 61
  • Doublons.xlsm
    15.2 KB · Affichages: 60

Modeste

XLDnaute Barbatruc
Re : Besoin de debuggage pour l'extraction des doublons d'une liste

Bonsoir chappyporfaro,

Dans les lignes suivantes, tu colles le résultat à partir de la ligne 2
VB:
Range(Cells(2, 1), Cells(data.Count, 1)) = Application.Transpose(data.Keys)
Range(Cells(2, 2), Cells(data.Count, 2)) = Application.Transpose(data.items)
... il faut donc ajouter 1 unité au nombre d'items de ton "dictionary"
VB:
Range(Cells(2, 1), Cells(data.Count + 1, 1)) = Application.Transpose(data.Keys))

Par contre "Données" serait le titre de la colonne et, à ce titre, ne devrait pas être inclus dans la sélection de départ, me semble-t-il.

Enfin, en modifiant un chouïa, il n'est pas nécessaire de sélectionner la plage (si la chose t'intéresse)
 

chappyporfaro

XLDnaute Junior
Re : Besoin de debuggage pour l'extraction des doublons d'une liste

Merci Modeste, ça fonctionne très bien. Et dire que ça fait des mois que je compense manuellement ce petit bug. lollll

Pour répondre à ton interrogation, l'ajout de l'entête de colonne est volontaire. Je me sers de la liste sans doublons pour faire d'autres manipulations par la suite. Et c'est pour cette raison que j'insère le titre "Nb Occurences" à sa droite ;)

Enfin, en modifiant un chouïa, il n'est pas nécessaire de sélectionner la plage (si la chose t'intéresse)

Qu'est-ce qu'un "chouïa"?

Merci
 

Modeste

XLDnaute Barbatruc
Re : Besoin de debuggage pour l'extraction des doublons d'une liste

re-bonsoir Chappy,

Un chouïa, c'est un tout petit morceau :D. Dans le cas présent, au lieu de
VB:
Set plage = Selection
... Tu peux écrire
VB:
Set plage = Sheets("Data").Range("A2:A" & Sheets("data").Range("A" & Rows.Count).End(xlUp).Row)
Ce qui correspond à la plage de cellules allant de A2 à la dernière cellule non-vide de la colonne A.

Tant qu'on est dans les suggestions, ton SOUS.TOTAL pourrait être remplacé par data.Count (nombre d'éléments dans le "dictionary")
 

chappyporfaro

XLDnaute Junior
Re : Besoin de debuggage pour l'extraction des doublons d'une liste

Re-bonsoir Modeste,

...
VB:
Set plage = Sheets("Data").Range("A2:A" & Sheets("data").Range("A" & Rows.Count).End(xlUp).Row)
Ce qui correspond à la plage de cellules allant de A2 à la dernière cellule non-vide de la colonne A.
Effectivement, j'aurais pu utiliser cette méthode, le code était justement définie comme tel au départ. Mais dans les données que je traite, les doublons peuvent se retrouver dans différentes colonnes. C'est pourquoi je m'étais gardé une sélection manuelle. C'est tout de même rapide, on sélectionne l'entête de colonne, et un tour de clé (CTRL-SHIFT-Flèche vers le BAS). La sélection est faite. ;)
Tant qu'on est dans les suggestions, ton SOUS.TOTAL pourrait être remplacé par data.Count (nombre d'éléments dans le "dictionary")
Tu suscite de l'interrogation de ma part. Le data.count ne me donnera-t-il pas la quantité totale de données, avec les doublons?

:confused: .... C'est vrai que je vérifie déjà si la donnée existe dans le "dictionary" avant de l'y ajouter. Je vais tenter l'expérience.

Merci infiniment. :D
 

Modeste

XLDnaute Barbatruc
Re : Besoin de debuggage pour l'extraction des doublons d'une liste

re²,

Tu suscite de l'interrogation de ma part.
Si c'est juste ce qu'il faut pour avancer tant mieux. Si ça sème le trouble, oublie ce que j'ai dit!

Le data.count ne me donnera-t-il pas la quantité totale de données, avec les doublons?
data.Count donne le nombre "d'entrées" dans ton dictionary ... donc sans les doublons, of course! ... Il faudra juste lui soustraire une unité (le fameux titre "Données" que nous évoquions précédemment et dont je suppose qu'il ne doit pas être comptabilisé :confused:)

Sur ce, belle soirée à Québec ... bonne nuit ici pour les couche-tôt (dont je serai, sous peu)
 

chappyporfaro

XLDnaute Junior
Re : Besoin de debuggage pour l'extraction des doublons d'une liste

re-bonsoir Modeste,

En effet, j'ai avancé d'un grand bond. :)

J'ai modifié le code selon tes précieux conseils et voici, ci-joint, la nouvelle version de mon fichier. À commenter lorsque tu en auras le temps ;)

Merci pour tout.

Bonne nuit à toi et à toute la Belgique
 

Pièces jointes

  • Doublons V1.xlsm
    15.3 KB · Affichages: 52

Modeste

XLDnaute Barbatruc
Re : Besoin de debuggage pour l'extraction des doublons d'une liste

re³,

Bonne nuit à toi et à toute la Belgique
"Arfff" comme disent certains de mes illustres condisciples et maîtres ... tu oublies qu'il y a aussi 3 ou 4 Français (ou un peu plus :confused:), 2 Suisses, 1 Monégasque, 2 quisontdanslesîles, etc...

Je propose aussi que la relecture soit ouverte à tout ce que ce forum peut compter d'esprits aiguisés :rolleyes:

Faites de beaux rêves, sous toutes les latitudes!
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 229
Membres
103 497
dernier inscrit
JP9231