Liste de fichiers disponibles dans un répertoire

zizoufan

XLDnaute Occasionnel
Bonjour à tous les amis,

j'utilise ce code pour lister tous les fichiers disponibles dans un répertoire et dans un sous répertoire :

Private Sub LoadFichSuivant(ByRef Rep, InclusSousRep As Boolean) 'appel récursif
Dim FileItem As Object, DernLig As Long
DernLig = Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row + 1
For Each FileItem In Rep.Files
Cells(DernLig, 1) = FileItem.parentfolder
Cells(DernLig, 2) = FileItem.Name
Cells(DernLig, 3) = FileItem.Datecreated
Cells(DernLig, 4) = FileItem.DateLastModified
'Cells(DernLig, 5).NumberFormat = "@"
'If FileItem.Size >= 1024 Then
' Cells(DernLig, 5) = Int(FileItem.Size / 1024) & " Ko"
'Else
' Cells(DernLig, 5) = FileItem.Size & " Octets"
'End If
Cells(DernLig, 5) = Right(FileItem.parentfolder, Len(FileItem.parentfolder) - InStrRev(FileItem.parentfolder, "\"))


'ActiveSheet.Hyperlinks.Add Cells(DernLig, 5), FileItem.Path
DernLig = DernLig + 1
Next
If InclusSousRep Then 'boucle si avec sous reps
Dim R As Variant
For Each R In Rep.SubFolders: LoadFichSuivant R, True: Next
End If
Set FileItem = Nothing
End Sub

Comment je pourrais faire pour alimenter cette liste sans pour autant écraser la liste que j'ai déjà sur le fichier ?

Merci d'avance
 

Dranreb

XLDnaute Barbatruc
Re : Liste de fichiers disponibles dans un répertoire

Bonjour
En mettant le résultat de cet inventaire des fichiers dans un tableau de variant et non dans les cellules, de manière à pouvoir procéder dans un deuxième temps à la fusion de ce tableau avec votre liste.

P.S. Voir en mettant tout dans un Dictionay avec les FileIem.Path comme clés.
Typez explicitement votre paramètre dossier (As Folder) et évitez autant que possible le type Object. Tous ces objets ont un type explicite défini par la référence "Microsoft Scripting Runtime"
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Liste de fichiers disponibles dans un répertoire

Bonjour zizoufan, Bernard

Peut-être en plaçant DernLig As Long en variable public à mettre en tête de module. Mais pas certain que cela fonctionne :eek:.

Code:
Public Dernlig As Long
 

zizoufan

XLDnaute Occasionnel
Re : Liste de fichiers disponibles dans un répertoire

Re

Normalement c'est toi qui fourni le fichier et ensuite, on peut essayer de voir ce qu'on peut faire avec tes explications claires :).

Tu as raison. voilà à quoi ressemble le fichier.

merci d'avance
 

Pièces jointes

  • bd_evaluation.xlsm
    37 KB · Affichages: 31
  • bd_evaluation.xlsm
    37 KB · Affichages: 41
  • bd_evaluation.xlsm
    37 KB · Affichages: 38

MJ13

XLDnaute Barbatruc
Re : Liste de fichiers disponibles dans un répertoire

Re

Bon, c'est complexe ton truc. Dans un premier temps supprime tous les dernlig as long puis modifie ton code en ajoutant la ligne Public dans le module 1.

Code VBA:
' .
' LOAD ARBORESCENCE .
' lit un rep avec sous reps collés en décalés sur colonnes .
'
Public DernLig As Long
 

Dranreb

XLDnaute Barbatruc
Re : Liste de fichiers disponibles dans un répertoire

Bonjour.
Une question entre autre: Pourquoi FileItem.parentfolder ? C'est Rep tout simplement !
Rep.Path plus précisément dans le cas ou vous voulez sa propriété par défaut.
et pire : Right(FileItem.parentfolder, Len(FileItem.parentfolder) - InStrRev(FileItem.parentfolder, "\")) ?
Rep.Name tout simplement !
Donc à part ça les résultats déjà portés dans la feuille ne doivent plus être réexaminés, même si on redemande le même répertoire ? Et dans ce cas pourquoi commencez vous par réexécuter ViderLaFeuille ?
 

Discussions similaires

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS