Créer une macro pour ne garder que les doublons dans une liste

Bonjour, je rencontre quelques difficultés dans la création d’un script VBA pour un projet Macro ayant pour objectif le regroupement de doublons. Voici quelques consignes qui expliquent mon problème. En espérant que vous pourrez m’aider :

Le projet de macro consiste à créer une liste qui ne contient que les doublons en tenant de compte de la valeur contenue dans une colonne.

Cette liste possède 4 colonnes comme suit :

La colonne A définit le nom du fichier.

La colonne B définit l’emplacement du fichier.

La colonne C définit le poids/volume du fichier.

La colonne D définit la date de modification du fichier.

La macro doit supprimer de la liste toutes les lignes qui ne sont pas en doublon en tenant de compte de la valeur contenue dans la colonne C.

Concrètement, à des fins d'exploitation informatique, nous créons d'abord un fichier excel qui contient la liste de tous les fichiers contenus dans un dossier et dans tous les sous dossiers.

On se dit que si le fichier a le même volume qu'un autre alors il y a une forte chance qu'il soit un doublon.

Le but est de fournir la liste finalisée aux utilisateurs propriétaires des données afin qu'ils puissent juger de la pertinence de garder tous les fichiers.

Voici un script que j'ai trouvé mais il ne m'envoie pas le résultat attendu:

Sub KeepDuplicate()

i = 1: j = 1
Sheets(1).Select
While Cells(i, 1).Value <> ""
word1 = Cells(i, 1).Value

j = i + 1
If Cells(i, 2).Value <> "ERASE" Then
While Cells(j, 1).Value <> ""
If Cells(j, 1).Value = word1 Then
Cells(j, 2).Value = "ERASE"
End If
j = j + 1
Wend
End If
i = i + 1
Wend

For j = i To 1 Step -1
If Cells(j, 2).Value <> "ERASE" Then
Rows(j).Select
Selection.Delete Shift:=xlUp
End If
Next j

End Sub

Bonjour,

Une alternative au code VBA, une requête Power Query...

Comme tu es sous 2013, il te faudra télécharger l'Add-On (Gratuit) sur le site de µSoft.

Une fois que tu auras cette fonctionnalité, une simple requête vers le répertoire te permettra d'obtenir moult information de tous les fichiers (nom, extension, date création, modification, dernière utilisation, taille, répertoire/sous_répertoire...)

Et en quelques clics, tu auras le nombre de fichiers en doublon (même nom, même taille), voire uniquement en comparant les tailles - au choix

A toi de voir.

Bonne journée

Bonjour, merci pour ta réponse, elle m'a été utile ! (dsl de revenir si tard j'étais absent quelques temps).

Y aurait-il une possibilité avec Power Query d'appliquer (si possible en un seul clic) la même requête mais sur une nouvelle feuille excel, une nouvelle base de données ?

Bonjour,

Je ne comprends pas trop ta question....

Qu'entends-tu par "nouvelle feuille, nouvelle base de données"?

Refaire ce que tu as fait (mais que nous ne connaissons pas...), et qui concernerait un autre répertoire/dossier?

Montre déjà ce que tu as, et explique peut-être un peu mieux ce que tu désires???

Je vais essayer d'être plus clair: J'ai créé une requête Power Query nommée "Doublons".

image

qui ne garde que les doublons en taille (colonne C) d'un fichier csv qui est une extraction d'un répertoire de fichiers.

image

J'aimerais pouvoir appliquer cette même requête sur un autre fichier csv du même format (l'extraction d'un autre répertoire). Et ce avec le moins de manipulation possible car j'ai beaucoup de répertoires à traiter.

Re-,

Ces répertoires sont situés sur le même disque dur?
Ou en réseau?

Et-ce que tu as essayé de mettre dans la requête le dossier maître? (incluant donc les autres répertoires)

Tous les répertoires sont sur un serveur de fichiers.

Je ne peux pas prendre de dossier maître malheureusement car le traitement me donne plus de ligne qu'un fichier excel peut en contenir.

L'idéal serai de pouvoir appliquer la requête "Doublons" en quelques clics à chaque nouvelle extraction de répertoire. C'est peut-être simple à faire mais je n'ai pas trouvé comment m'y prendre.

Re-,

Tous les répertoires sont sur un serveur de fichiers.

Je ne peux pas prendre de dossier maître malheureusement car le traitement me donne plus de ligne qu'un fichier excel peut en contenir.

Le nombre de lignes importe peu pour PQ...(vu une requête avec plus de 80 millions de lignes...)
Tu peux en charger autant que tu veux, par contre, il y aura sûrement un certain de temps de traitement...

Et je doute quand même qu'il y ait plus d'un million de fichiers en doublon, ou alors, il est vraiment temps d'agir...

Re-,

Re-,

Tous les répertoires sont sur un serveur de fichiers.

Je ne peux pas prendre de dossier maître malheureusement car le traitement me donne plus de ligne qu'un fichier excel peut en contenir.

Le nombre de lignes importe peu pour PQ...(vu une requête avec plus de 80 millions de lignes...)
Tu peux en charger autant que tu veux, par contre, il y aura sûrement un certain de temps de traitement...

Et je doute quand même qu'il y ait plus d'un million de fichiers en doublon, ou alors, il est vraiment temps d'agir...

OK, j'ai fait mon "marseillais"...

Je rabaisse le nombre de lignes à 6 millions...(mais ça indique quand même un nombre bien conséquent...)
Et le temps de traitement était de l'ordre de 19 minutes...(avec un traitement spécifique sur le calcul de date la plus récente)

Rechercher des sujets similaires à "creer macro garder que doublons liste"