XL 2013 Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Florian53

XLDnaute Impliqué
Bonjour à tous,

Je souhaiterais pouvoir via un fichier excel lister tous les fichiers qui ce trouve dans un dossier ainsi que les fichiers qui se trouve dans les sous dossiers du dossier "parent".

J'ai trouvé ce lien sur le net : https://vbaforexcel.wordpress.com/2013/09/06/lister-les-fichiers-et-sous-dossiers-dun-dossier/ qui explique très bien comment faire.

J'ai réussi à le faire fonctionner à mon utilisation par contre il liste que les fichiers du dossier mais pas ceux des sous dossiers.

je pense qu'il faut partir de ce code :

Code:
Sub Fichiers()
Application.ScreenUpdating = False
Dim myPath As String, myFile As String

myPath = ThisWorkbook.Path
myFile = Dir(myPath & "\*.xls*")

c = 1
Do While myFile <> ""
    Cells(c, 1) = myFile
    myFile = Dir()
    c = c + 1
Loop

End Sub

Pouvez vous m'éclairer svp.

Cordialement
 

Florian53

XLDnaute Impliqué
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Voici en pièce jointe le fichier avec le code du post #11 toutes les dossiers défile en "B1"
 

Pièces jointes

  • Classeur1.xlsm
    15.5 KB · Affichages: 98
  • Classeur1.xlsm
    15.5 KB · Affichages: 78

Florian53

XLDnaute Impliqué
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

autant pour moi c'est ma constante qui m’embête

Sub ListeFichiersRepert()
Dim Fso As Object
Dim MonRepertoire As String, f As Object, x As Integer
Dim f1 As Object, f2 As Object
Set Fso = CreateObject("Scripting.FileSystemObject")
MonRepertoire = "G:\sourcing qualité\SAV\Analyse SAV"
x = 1
For Each f In Fso.GetFolder(MonRepertoire).Files
If f.Name Like "*.xls*" Then
Cells(x, 1).Value = f.Name
x = x + 1
End If
Next f
x = 1
For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders
Cells(x, 2).Value = f1.Name
x = x + 1
For Each f2 In f1.Files
If f2.Name Like "*.xls*" Then
Cells(x - 1, 3).Value = f2.Name
x = x + 1
End If
Next f2
x = x - 1
Next f1
End Sub

sa fonctionne très bien comme ceci par contre sa s'arrete au premier sous dossiers mais si je dispose encore de sous dossiers dans le 1er niveau des sous dossiers sa va devenir une usine à gaz ?
 

Pierrot93

XLDnaute Barbatruc
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Re,

essaye ceci :
Code:
Option Explicit
 Sub ListeFichiersRepert()
 Dim Fso  As Object
 Dim MonRepertoire As String, f As Object, x As Integer
 Dim f1 As Object, f2 As Object
 Set Fso = CreateObject("Scripting.FileSystemObject")
 MonRepertoire = "G:\sourcing qualité\SAV\Analyse SAV"
 x = 1
 For Each f1 In Fso.GetFolder(MonRepertoire).SubFolders
     Cells(x, 1).Value = f1.Name
     x = x + 1
     For Each f2 In f1.Files
     If f2.Name Like "Constante*.xls*" Then
         Cells(x - 1, 2).Value = f2.Name
         x = x + 1
         End If
     Next f2
     x = x - 1
 Next f1
 End Sub
 

Florian53

XLDnaute Impliqué
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

sa fonctionne mais pas pour sous dossiers des sous dossiers et etc .......

En fait ce que je voudrais c'est à partir de la racine "G:\sourcing qualité\SAV\Analyse SAV"

Il me liste toutes les fichiers xls ou xlsm qui commence par "Analyse SAV" des dossiers sous dossiers, des sous sous dossiers je voudrais qu'il aille au bout pas qu'il s’arrête au 1er niveau.
 

Pierrot93

XLDnaute Barbatruc
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Re,

En fait ce que je voudrais c'est à partir de la racine "G:\sourcing qualité\SAV\Analyse SAV"

Il me liste toutes les fichiers xls ou xlsm qui commence par "Analyse SAV" des dossiers sous dossiers, des sous sous dossiers je voudrais qu'il aille au bout pas qu'il s’arrête au 1er niveau.
regarde le code de Michel, il me sembe que c'est ce qu'il fait.....
 

Florian53

XLDnaute Impliqué
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

oui il fonctionne bien mais comme je disais dans le post #6 si il y a 2 resultat vrais dans le même dossier il les à la suite ( ex: C10,D10) et oi je voudrais qu'il les uns en dessous des autres
 

Pierrot93

XLDnaute Barbatruc
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Re,

il faut gérer différemment cette partie du code sans doute

Code:
c = 2
 Do While myFile <> ""
     'Cells(c, 1) = myFile
    Cells(ActiveCell.Row, c) = myFile
     myFile = Dir()
     c = c + 1
 Loop
 

MJ13

XLDnaute Barbatruc
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Re

J'aime bien le code concis de Pierrot du post 20:

Sinon, voici une nouvelle version.
 

Pièces jointes

  • Liste_Fichiers_Et_VBA_MJ.xlsm
    40.8 KB · Affichages: 91

Roland_M

XLDnaute Barbatruc
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Bonsoir tout le monde,

@Florian, suite à ton message privé !
voir si ok selon tes demandes !?

EDIT:
j'avais oublié d'enlever l'appel de la macro qui créé les menus personnalisés !
 

Pièces jointes

  • ListRepFich_Florian.xlsm
    48.6 KB · Affichages: 104
Dernière édition:

Florian53

XLDnaute Impliqué
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Merci Roland c'est tout à fais ce que je voulais et merci à MJ13 ainsi qu'à Pierrot de m'avoir aider aussi.

Est ce que c'est possible d'inclure plusieurs chemins dans " RepSaisie$ " ?
 

Dranreb

XLDnaute Barbatruc
Re : Lister les fichier d'un dossier et de tous les sous dossiers du dossier "parent"

Bonjour.
Juste une observation à propos du dernier module de Roland_M.
Dommage d'avoir laissé partout Object au lieu des types explicites de la bibliothèque Scripting: FileSystemObject, Folder et File !
Il s'en suit que la référence Microsoft Scripting Runtime ne sert presque à rien puisqu'elle n'évite quand même pas les liaisons tardives…
Mais pas grave, du moment que ça marche quasiment aussi bien.
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette