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
 

Roland_M

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

Bonjour tout le monde,

@Dranreb ! tout à fait !
mais j'ai fait ceci sur la base du classeur beaucoup plus complet qui est sur le forum > ListRepFichArborescence2.xlsm
j'ai fais que supprimer un max de routines qu'il ne voulait pas et sans chercher plus !


@MJ13 ! t'inquiètes ce n'est qu'une adaptation voulue par notre ami demandée par M.P c'est tout !


@Florian ! tu demandes: Est ce que c'est possible d'inclure plusieurs chemins dans " RepSaisie$ " ?
mais je ne comprends pas cette question !?
RepSaisie$ ne peut être qu'un seul et unique chemin de départ !
 

Florian53

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

Est possible afin d'avoir une meilleur lisibilité que chaque ligne soit de couleur différente

Par exemple:

1er ligne: vert foncé
2eme ligne: vert clair
3eme ligne: vert foncé
4eme ligne: vert clair
......

Par la suite je voudrais pouvoir ouvrir tous les liens hypertext pour qu'il aille chercher une valeur dans chaque fichier par exemple la cellule "B2" et qu'il la colle à la suite de ligne correspondante dans la colonne "E" puis refermer le fichier. je voudrais faire ça avec tout les liens qu'il affiche.

J'ai trouvé ce bout de code que MJ13 à posté sur un des fil :

Code:
Sub Lister_Noms_Et_Ouvrir_Xlsm()
Dim chemin As String
  Dim nomFichier As String
   
  chemin = ThisWorkbook.Path & Application.PathSeparator
  nomFichier = Dir(chemin)
  i = 1
  Do While Len(nomFichier) > 0
    ActiveSheet.Range("A" & i + 1).Value = nomFichier
    nomFichier = Dir
    i = i + 1
    ActiveSheet.Hyperlinks.Add Anchor:=Range("A" & i), Address:=Range("A" & i).Value
    If Right(Range("A" & i).Value, 4) = "xlsm" Then Workbooks.Open (ThisWorkbook.Path & "\" & Range("A" & i).Value)
      Loop
End Sub

est ce que je peux m'en sortir avec ça ?
 
Dernière édition:

Roland_M

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

re

Par la suite je voudrais pouvoir ouvrir tous les liens hypertext pour qu'il aille chercher une valeur dans chaque fichier par exemple la cellule "B2" et qu'il la colle à la suite de ligne correspondante dans la colonne "E" puis refermer le fichier. je voudrais faire ça avec tout les liens qu'il affiche.

il y a plus simple que d'ouvrir, on peut lire directement une cellule dans des classeurs fermés !
mais ça prend aussi un peu plus de temps à réaliser !
 

Florian53

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

effectivement avec vous les pros VBA rien n'est impossible je vous envie de savoir aussi bien manipuler ce genre de chose. Si c'est possible roland je veux bien sa simplifierai le fonctionnement
 

Florian53

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

J'ai trouvé ce code pour lire sur classeur fermé :

Code:
Sub extractionValeurCelluleClasseurFerme()
    Dim Source As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Dim ADOCommand As ADODB.Command
    Dim Fichier As String, Cellule As String, Feuille As String
    
    'Adresse de la cellule contenant la donnée à récupérer
    Cellule = "B4:B4"
      'Pour une plage de cellules, utilisez:
      'Cellule = "A4:C10"
      
    Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
    'Chemin complet du classeur fermé
    Fichier = "C:\Base.xls"
                
    Set Source = New ADODB.Connection
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
                
    Set ADOCommand = New ADODB.Command
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
    End With
                  
    Set Rst = New ADODB.Recordset
    Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
                  
    Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
     
    Range("A2").CopyFromRecordset Rst
            
    Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing
End Sub

Est ce adaptable à mon projet ?
 

MJ13

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

Re

Merci Roland, c'est vrai que c'était pas très clair, mais j'ai compris en agitant quelques neurones :eek:.

Sinon, pensez toujours au gens qui ne comprennent rien, c'est pour cela que mes applis sont censées être utilisables et comprises de tous :).
 

Discussions similaires

Statistiques des forums

Discussions
312 213
Messages
2 086 307
Membres
103 174
dernier inscrit
OBUTT