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
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
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" <newskob650@yahoo.fr> a écrit dans le message de
news:c6j2fo$q2f$1@s1.read.news.oleane.net...
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" <anonymous@discussions.microsoft.com> a écrit dans le message
de
news:444001c42b8e$dfda90d0$a301280a@phx.gbl...
Bonjour,
Je souhaite balayer l'ensemble d'un dossier et ses sous-
dossiers pour en sortir un listing de fichier Excel.
Comment faire ?
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
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
.
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" <newskob650@yahoo.fr> a écrit dans le message
de
news:c6j2fo$q2f$1@s1.read.news.oleane.net...
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" <anonymous@discussions.microsoft.com> a
écrit dans le message
de
news:444001c42b8e$dfda90d0$a301280a@phx.gbl...
Bonjour,
Je souhaite balayer l'ensemble d'un dossier et ses
sous-
dossiers pour en sortir un listing de fichier Excel.
Comment faire ?
-----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
.
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
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" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 444001c42b8e$dfda90d0$a301280a@phx.gbl...
Bonjour,
Je souhaite balayer l'ensemble d'un dossier et ses sous-
dossiers pour en sortir un listing de fichier Excel.
Comment faire ?
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 ?