Microsoft 365 lister les nom de tout les fichiers et des dossier

ALAIN-KLAIKENS

XLDnaute Nouveau
Bonsoir à tous
Voilà je voudrais trouver une formule pour lister les nom de tout les fichiers et des dossier contenu dans un dossier et dans les sous dossier de celui ci
Merci à vous
 

Dranreb

XLDnaute Barbatruc
Essayez comme ça :
VB:
Option Explicit
Private TRés(), LCou As Long, FSO As New FileSystemObject
Sub ListeFic()
   Dim NomDoss As String
   NomDoss = ActiveSheet.Cells(1, "A").Value
   If FSO.FolderExists(NomDoss) Then
      ReDim TRés(1 To 10000, 1 To 2)
      LCou = 0
      Lister FSO.GetFolder(NomDoss)
      ActiveSheet.Rows(3).Resize(10000).Delete
      ActiveSheet.[A3].Resize(LCou, 2).Value = TRés
      Erase TRés
   Else
      MsgBox "Dossier """ & NomDoss & """ inexistant.", vbCritical, "ListeFic"
      End If
   End Sub
Private Sub Lister(ByVal Fdr As Scripting.Folder)
   Dim ChemDoss As String, FdrS As Scripting.Folder, Fle As Scripting.File
   If Fdr.Attributes >= 1024 Then Exit Sub
   ChemDoss = Fdr.Path
   For Each Fle In Fdr.Files
      LCou = LCou + 1
      TRés(LCou, 1) = ChemDoss
      TRés(LCou, 2) = Fle.Name
      Next Fle
   For Each FdrS In Fdr.SubFolders
      Lister FdrS: Next FdrS
   End Sub
 
Dernière édition:

ALAIN-KLAIKENS

XLDnaute Nouveau
Essayez comme ça :
VB:
Option Explicit
Private TRés(), LCou As Long, FSO As New FileSystemObject
Sub ListeFic()
   Dim NomDoss As String
   NomDoss = ActiveSheet.Cells(1, "A").Value
   If FSO.FolderExists(NomDoss) Then
      ReDim TRés(1 To 10000, 1 To 2)
      LCou = 0
      Lister FSO.GetFolder(NomDoss)
      ActiveSheet.Rows(3).Resize(10000).Delete
      ActiveSheet.[A3].Resize(LCou, 2).Value = TRés
      Erase TRés
   Else
      MsgBox "Dossier """ & NomDoss & """ inexistant.", vbCritical, "ListeFic"
      End If
   End Sub
Private Sub Lister(ByVal Fdr As Scripting.Folder)
   Dim ChemDoss As String, FdrS As Scripting.Folder, Fle As Scripting.File
   If Fdr.Attributes >= 1024 Then Exit Sub
   ChemDoss = Fdr.Path
   For Each Fle In Fdr.Files
      LCou = LCou + 1
      TRés(LCou, 1) = ChemDoss
      TRés(LCou, 2) = Fle.Name
      Next Fle
   For Each FdrS In Fdr.SubFolders
      Lister FdrS: Next FdrS
   End Sub
je vais essayez merci à toi
 

patricktoulon

XLDnaute Barbatruc
Bonjour le fil

=>patricktoulon

Je ne suis pas lui, mais si j'étais moi, je sais que j'ai plus rapide en stock
(et plus court -> oneliner ;))
C'était juste pour t'informer que le défi pouvait être revelé.
;)
re bonsoir a tous viens de rentrer
@Staple1600 si tu a cela en stock en VB envoie la sauce
ne me sort pas powerquery c'est pas VB ça et de toute façon Powerquery sur 2013 n'est qu'un ersatz de celui de 2016 et +
si tu parle de la commande tree vers clipboard en ligne de commande je connais c'est pas VB non plus
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

=>patricktoulon
Faut pas prendre la mouche ;)
Mon message était à caractère informatif simplement. ;)
Et en y repensant, j'ai une autre méthode en stock également
(mais ce n'est point celle qu'on lire ci-dessous ;))
[humour spécial fête de la nativité]
Mais quand j'ai commencé mon noviciat au petit séminaire de La Grande Cellule me fut enseigné ce mantra essentiel.
"Ne dévoie pas Excel de sa destinée de Grand Tableur Sacré"
Souvent, j'ai péché, j'ai fait du VBA gratuitement, oubliant les bases d'Excel.

Ici, on parle de lister des fichiers.
Soit, j'utilise donc :
-un logiciel tiers
-une ligne PowerShell(qui sait être récursif) que j'interface avec VBA
:eek: O my God, c'est mon oneliner, j'ai fauté de nouveau.
Mea maxima culpa
[/[humour spécial fête de la nativité]]
;)
 

Staple1600

XLDnaute Barbatruc
Re

=>patricktoulon
Je ne suis pas sur mon PC de tous les jours.
J'ai cela dans mes archives.
Et je l'utilise rarement in situ.
Car (et c'est donc un aparté)...
A mon sens, il n'est pas utile de lister des fichiers dans les cellules d'une feuille.
Ce qui compte c'est le pourquoi de la chose?
Et de faire en sorte que son code VBA fasse ce qu'il a faire en un minimum d'étapes.
Exemple: je liste le contenu d'un dossier et de ses sous-dossiers
et j'obtiens 1600 noms de fichiers dans la colonne A.
Je ne vais pas les lire un à un.
Je vais donc zapper cette étape, et faire directement ce que je pensais faire après ce listage.
Bref, je vais revoir mon algo
(Enfin bien sûr, si j'étais moi, c'est ce que je ferais ;))
fin de l'aparté
 

Discussions similaires

Statistiques des forums

Discussions
314 499
Messages
2 110 247
Membres
110 711
dernier inscrit
chmessi