XL 2016 Ordre de parcours d'une collection

Chose38

XLDnaute Nouveau
Bonjour à tous.

Je rencontre une difficulté dans l'exploitation de "For each"

For Each d In Dossier.SubFolders
For Each oFile In d.Files​
.....​
.....​
Next oFile​
next d


Ces boucles fonctionnent parfaitement mais je souhaiterais pour obtenir le résultat escompté que le parcours dans les collections "Dossier.SubFolders" et "D.Files" se fasse selon un ordre de type alphabétique ce qui n'est pas le cas.
Merci par avance pour votre aide.

Yves
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Chose, et bienvenu sur XLD,
J'ai bien peur qu'un For Next ne puisse trier, vous aurez les fichiers "en vrac" suivant probablement la date de création ou un autre paramètre.
Une piste possible en PJ qui engrange les noms dans un array puis ensuite trie cet array.
Avec deux options prises :
1- Ne tient pas compte de la casse, sinon modifier ligne
VB:
If LCase(Liste(i)) < LCase(Liste(j)) Then
2- Ne tient pas compte du nom de dossier pour construire la liste, sinon modifier ligne :
Code:
Liste(IndexL) = FileItem.Name ' Ou avec nom dossier : FileItem.ParentFolder & "\" & FileItem.Name
Tout dépend de votre besoin. Pour tester, pensez à modifier la ligne :
Code:
ListeFichiers "C:\Users\PC_PAPA\Desktop\XLD\"   ' METTRE ICI LE CHEMIN DU DOSSIER A ANALYSER
 

Pièces jointes

  • Folders.xlsm
    36.2 KB · Affichages: 1

Chose38

XLDnaute Nouveau
Merci sylvanu pour la réponse ... rapide en + et qui correspond à ce que je pensais c.a.d. l'utilisation d'une ArrayList à la place d'une collection de Folders afin de pouvoir la trier avant de l'exploiter mais cela risque d'être assez coton à réaliser.
Pour les options :
  1. La casse : pas de souci.
  2. Pour les répertoires, c'est la que cela se corse
Il s'agit de traiter une liste d'environ 60 000 morceaux musicaux répartis en fonction de plusieurs critères​
  • les auteurs qui correspondent au sous répertoire de niveau 1,
  • les sous répertoires de l'auteur qui correspondent à la série des œuvres en niveau 2,
  • les sous répertoires de la série des œuvres qui correspondent à chacune des œuvres de la série en niveau 3,
  • les sous répertoires de chaque œuvre qui correspondent aux divers cd de chaque œuvre en niveau 4
  • les divers morceaux de chaque CD en niveau 5
Mais enfin y'a plus qu'à le faire !!!
Merci encore!
 

Chose38

XLDnaute Nouveau
Merci kiki29 !
pour l'info du code de JB.
C'est, grosso modo, ce que j'ai déjà réalisé et qui fonctionne très bien avec comme seul problème que le résultat est un peu "en vrac" (selon l'expression de sylvanu...). L'ordre de sortie de chaque folder ou fichier (généré par le For Each... Next) se fait d'une façon qui ne doit pas être aléatoire mais sans doute selon la date de la dernière modification (?) ce qui n'est pas conforme à ce que je souhaite...
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 206
dernier inscrit
diambote