OVH Cloud OVH Cloud

lecture de dossier et sous-dossier

4 réponses
Avatar
Véronique
Bonjour,

Je souhaite balayer l'ensemble d'un dossier et ses sous-
dossiers pour en sortir un listing de fichier Excel.
Comment faire ?

Merci d'avance

4 réponses

Avatar
John Fuss
AMHA la solution est d'utiliser FileSystemObject (FSO) et construire une
fonction récursive (qui s'appel elle-même).

Je regarde si j'ai ma fonction de recherche de film et je re-post

John

"Véronique" a écrit dans le message de
news:444001c42b8e$dfda90d0$
Bonjour,

Je souhaite balayer l'ensemble d'un dossier et ses sous-
dossiers pour en sortir un listing de fichier Excel.
Comment faire ?

Merci d'avance




Avatar
John Fuss
Déja, Menu outils/Références et choisi Microsoft Scripting Runtime

Private Sub bt_recherche_Click()
Dim fso As FileSystemObject, drv As Drive

Set fso = CreateObject("Scripting.FileSystemobject")
For Each drv In fso.Drives
If (drv.DriveType = Fixed) Or (drv.DriveType = CDRom) Then 'Scan
les HDD & CD-ROM
ScanFolderForFilm drv.RootFolder
End If
Next
End Sub

Public Function ScanFolderForFilm(rep As Folder)
Dim film As File, i As Integer, subRep As Folder
Dim FINDED As Boolean

lst_rep.AddItem rep.Name
For Each film In rep.Files
'dans ton cas :
if right(film.name, 4) = ".xls" then
FINDED = True
end if
Next
For Each subRep In rep.SubFolders
ScanFolderForFilm subRep
Next
End Function

Voilà

John


"John Fuss" a écrit dans le message de
news:c6j2fo$q2f$
AMHA la solution est d'utiliser FileSystemObject (FSO) et construire une
fonction récursive (qui s'appel elle-même).

Je regarde si j'ai ma fonction de recherche de film et je re-post

John

"Véronique" a écrit dans le message
de

news:444001c42b8e$dfda90d0$
Bonjour,

Je souhaite balayer l'ensemble d'un dossier et ses sous-
dossiers pour en sortir un listing de fichier Excel.
Comment faire ?

Merci d'avance








Avatar
Super c'est tout ce que j'attendais !!!! Merci
-----Message d'origine-----
Déja, Menu outils/Références et choisi Microsoft
Scripting Runtime


Private Sub bt_recherche_Click()
Dim fso As FileSystemObject, drv As Drive

Set fso = CreateObject("Scripting.FileSystemobject")
For Each drv In fso.Drives
If (drv.DriveType = Fixed) Or (drv.DriveType =
CDRom) Then 'Scan

les HDD & CD-ROM
ScanFolderForFilm drv.RootFolder
End If
Next
End Sub

Public Function ScanFolderForFilm(rep As Folder)
Dim film As File, i As Integer, subRep As Folder
Dim FINDED As Boolean

lst_rep.AddItem rep.Name
For Each film In rep.Files
'dans ton cas :
if right(film.name, 4) = ".xls" then
FINDED = True
end if
Next
For Each subRep In rep.SubFolders
ScanFolderForFilm subRep
Next
End Function

Voilà

John


"John Fuss" a écrit dans le message
de

news:c6j2fo$q2f$
AMHA la solution est d'utiliser FileSystemObject (FSO)
et construire une


fonction récursive (qui s'appel elle-même).

Je regarde si j'ai ma fonction de recherche de film et
je re-post



John

"Véronique" a
écrit dans le message


de
news:444001c42b8e$dfda90d0$
Bonjour,

Je souhaite balayer l'ensemble d'un dossier et ses
sous-



dossiers pour en sortir un listing de fichier Excel.
Comment faire ?

Merci d'avance








.





Avatar
papou
Bonjour
Pour compléter et sans utiliser FSO, exemple d'une autre méthode avec
FileSearch (modifier les paramètres dans RechercheF) :
Public Function CreerListeF(Filtre As String)
Dim Tablist() As String, Compte As Long
CreerListeF = ""
Erase Tablist
If Filtre = "" Then Filtre = "*.xls"
With Application.FileSearch
.NewSearch
.LookIn = CurDir
.Filename = Filtre
.SearchSubFolders = True
.FileType = msoFileTypeAllFiles
If .Execute(SortBy:=msoSortByFileName, sortorder:=msoSortOrderAscending)
= 0 Then Exit Function
ReDim Tablist(.FoundFiles.Count)
For Compte = 1 To .FoundFiles.Count
Tablist(Compte) = .FoundFiles(Compte)
Next Compte
.FileType = msoFileTypeExcelWorkbooks
End With
CreerListeF = Tablist
Erase Tablist
End Function
Sub RechercheF()
Dim NomsF As Variant, i As Integer
ChDrive "D"
ChDir "D:Paro"
NomsF = CreerListeF("*.*")
Workbooks.Add
With Sheets("Feuil1")
For i = 0 To UBound(NomsF)
.Cells(i + 1, 1).Formula = NomsF(i)
Next i
With .Cells(1, 1)
.Formula = "Fichiers trouvés"
.Font.Bold = True
End With
End With
End Sub

Cordialement
Pascal

"Véronique" a écrit dans le message de
news: 444001c42b8e$dfda90d0$
Bonjour,

Je souhaite balayer l'ensemble d'un dossier et ses sous-
dossiers pour en sortir un listing de fichier Excel.
Comment faire ?

Merci d'avance