Trier les doublons d'une liste

antwane

XLDnaute Nouveau
Bonjour,

Je souhaite trier un dossier (environ 3500fichiers) via Excel (c'est le moyen le plus simple que j'ai trouvé).
Grâce à FreeCommander, j'ai récupéré le nom des fichiers+ extensions.

Le trie est assez simple, mais la mise en œuvre est plus compliqué !

99% des fichiers ont la forme ci-dessous :
  • 6 digits + extension (exemple : 123456.pdf)
  • 6 digits + _ + indice + extension (exemple : 123456_B.dxf)

Le reste des fichiers sera traité à la main.
Un fichier peut exister avec différentes extensions.

Le principe :
Cas 1 : Il n'y qu'une version du fichier = aucun tri à faire
Cas 2 : Plusieurs versions du fichier existent = Archiver les fichiers qui n'ont pas d'indice et ceux qui ont un indice inférieur.

Dans l'exemple ci-joint, j'ai créé une colonne "ARCHIVER ?" qui me permettrais de trier mes fichiers.
Mais quelle formule appliquer ?

Merci d'avance,
 

Pièces jointes

  • tri.xlsx
    13.2 KB · Affichages: 23
  • tri.xlsx
    13.2 KB · Affichages: 24
  • tri.xlsx
    13.2 KB · Affichages: 30

vgendron

XLDnaute Barbatruc
Re : Trier les doublons d'une liste

hello

Voici une proposition avec macro vba
1) j'ai modifié quelques formules dans le tableau
2) la macro commence par trier par ref, extension, indice
3) parcours le tableau pour voir s'il faut archiver ou pas

Note: le 023860.dxf étant unique, je pense qu'il y a une erreur dans ton fichier origine: tu le mets à archiver alors que si j'ai bien compris.. il ne faut pas

pS: efface la colonne F avant de lancer la macro
 

Pièces jointes

  • tri.xlsm
    22.7 KB · Affichages: 20
  • tri.xlsm
    22.7 KB · Affichages: 22
  • tri.xlsm
    22.7 KB · Affichages: 27

antwane

XLDnaute Nouveau
Re : Trier les doublons d'une liste

Merci pour cette solution.

Concernant le 023860.dxf, c'était volontaire, mais sûrement mal expliqué.

Pour remettre dans le contexte :
Les fichiers sont des plans pour la fabrication de pièces.
Le format PDF est imprimable et lisible par tous.
Les autres formats (DXF et parfois ZIP) sont lisibles par les machines, ces fichiers ne sont pas systématiques.

Une dernière chose,
Je ne maitrise pas les macros VBA, mais est-ce plus compliqué de tenir compte des indices après "Z" sous la forme "AA","AB","AC" ?
 

vgendron

XLDnaute Barbatruc
Re : Trier les doublons d'une liste

Hello

ok, j'ai saisi pour le dxf: il faut l'archiver parce que sa version pdf (à meme indice) est à archiver.. et le dxf en version A n'existe pas..

donc. ca va compliquer la macro.. mais on devrait s'en sortir

pour les indices AA , non, ca se gere également. pas aussi simplement qu'une comparaison AA est bien > à A, mais pas à B..

est ce que dans ton fichier tu es susceptible d'avoir les deux types d'indices? A et AA?
 

vgendron

XLDnaute Barbatruc
Re : Trier les doublons d'une liste

Re,

Voici une version modifiée qui devrait fonctionner...
à tester avec des indices en AA et en A

à modifier aussi, la formule en colonne D
en D2
=SI(ESTERREUR(CHERCHE("_";A2;1));"";STXT(A2;8;NBCAR(A2)-11))

puis tirer vers le bas
 

Pièces jointes

  • tri.xlsm
    25 KB · Affichages: 23
  • tri.xlsm
    25 KB · Affichages: 26
  • tri.xlsm
    25 KB · Affichages: 20
Dernière édition:

antwane

XLDnaute Nouveau
Re : Trier les doublons d'une liste

J'ai fait différent essais, ça fonctionne bien sauf pour un exemple avec des références "fictives"
tri.png

Je n'arrive pas à voir la raison de ce "bug" au niveau de l'indice "W"
Si je renomme avec un indice inférieur à W (E, L, O, etc.) ça fonctionne.
 

vgendron

XLDnaute Barbatruc
Re : Trier les doublons d'une liste

Re,
En fait, je crois (et meme je suis sur) que le problème vient du tri lui meme.
je m'explique..
la macro fait un tri..puis se déroule sur la base de ce tri
c'est à dire qu'on suppose que les indices sont triés par ordre croissant..donc. quand on trouve un indice W par exemple.. la macro va voir les lignes suivantes (puisque les indices sont censés etre croissants)..
SAUF que les indices AB et AC sont placés AVANT l'indice W

bref.. il faudrait faire un tri alphabétique sur les indices à une lettre PUIS un tri alphabétique sur les indices à DEUX lettres.

j'y réfléchi dès que je peux et je reviens vers toi

PS: pour suivre la macro et mieux comprendre son fonctionnement, lance la en mode pas à pas (touche F8)
 

vgendron

XLDnaute Barbatruc
Re : Trier les doublons d'une liste

Re,

Je crois que la. on est bon.. seule limitation que je vois.. si tu passes à des indices à 3 lettres. il faudra modifier la colonne Code
l'astuce utilisée: j'affecte un nombre à chaque indice avec la formule en colonne Code
pourquoi mettre du gauche et droite?
parce que je pensais que la fonction CODE me donnerait une valeur différente entre A et AA; sauf que non. les deux sont à 63
donc. sans doute que CODE ne marche que sur des chaines de 1 caractère: cf calculs en colonne JKLM

donc, j'ai fait une formule qui ajoute le code de la première lettre (code(gauche())+ le code de la seconde lettre (code (droite())
d'ou la limitation si tu utilises des indices à 3 lettres.. il faudra modifier la formule pour ajouter le code de chaque lettre..

maintenant que tous les indices ont une valeur distincte: je peux trier sur ce code
et la.. on a bien AA supérieur à A ou à B
 

Pièces jointes

  • tri.xlsm
    24.8 KB · Affichages: 22
  • tri.xlsm
    24.8 KB · Affichages: 26
  • tri.xlsm
    24.8 KB · Affichages: 25

antwane

XLDnaute Nouveau
Re : Trier les doublons d'une liste

Super, ça fonctionne très bien.
L'utilisation d'indice à 3 lettres, est improbable.

En tous cas, merci beaucoup, cette solution combiné à FreeCommander va me faire gagner beaucoup de temps.
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof