Je voudrais rechercher en VBA tout les sous-répertoires par exemple "2005
Janvier\Docs" parmis le répertoire racine "D:\Mes Docs\".
Le problème est que la fonction FileSearch n'apprécie pas d'avoir une
recherche avec un slash... (J'ai un message: "Erreur d'exéctuion '5':
Argument ou appel de procédure incorrect").
Avez vous une idée sur la façon dont je pourrais m'en sortir ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jps
bonjour HD colle ceci dans un module standard et ça devrait le faire cette proc a été donnée par michdenis (que nous saluons au passage) qui, lui-même, s'était inspiré de Dave Peterson d'un forum anglophone HTH jps
Option Explicit Dim myRow As Long Dim wks As Worksheet
Sub FoldersList() Set wks = Worksheets.Add myRow = 0
'Sélectionne ton répertoire ici : Call FoldersInFolder("C:TonRepertoire") End Sub
Sub FoldersInFolder(myFolderName As String)
Dim FSO As Object Dim myBaseFolder As Object Dim myFolder As Object Set FSO = CreateObject("scripting.filesystemobject")
Set myBaseFolder = FSO.GetFolder(myFolderName)
For Each myFolder In myBaseFolder.SubFolders myRow = myRow + 1 wks.Cells(myRow, "A").Value = myFolder.Path Call FoldersInFolder(myFolder.Path) Next myFolder
End Sub
"HD" a écrit dans le message de news: dtufik$kbe$
Bonjour,
Je voudrais rechercher en VBA tout les sous-répertoires par exemple "2005 JanvierDocs" parmis le répertoire racine "D:Mes Docs".
Le problème est que la fonction FileSearch n'apprécie pas d'avoir une recherche avec un slash... (J'ai un message: "Erreur d'exéctuion '5': Argument ou appel de procédure incorrect").
Avez vous une idée sur la façon dont je pourrais m'en sortir ?
Merci d'avance pour votre aide -- @+ HD
bonjour HD
colle ceci dans un module standard et ça devrait le faire
cette proc a été donnée par michdenis (que nous saluons au passage) qui,
lui-même, s'était inspiré de Dave Peterson d'un forum anglophone
HTH
jps
Option Explicit
Dim myRow As Long
Dim wks As Worksheet
Sub FoldersList()
Set wks = Worksheets.Add
myRow = 0
'Sélectionne ton répertoire ici :
Call FoldersInFolder("C:TonRepertoire")
End Sub
Sub FoldersInFolder(myFolderName As String)
Dim FSO As Object
Dim myBaseFolder As Object
Dim myFolder As Object
Set FSO = CreateObject("scripting.filesystemobject")
Set myBaseFolder = FSO.GetFolder(myFolderName)
For Each myFolder In myBaseFolder.SubFolders
myRow = myRow + 1
wks.Cells(myRow, "A").Value = myFolder.Path
Call FoldersInFolder(myFolder.Path)
Next myFolder
End Sub
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
dtufik$kbe$1@biggoron.nerim.net...
Bonjour,
Je voudrais rechercher en VBA tout les sous-répertoires par exemple "2005
JanvierDocs" parmis le répertoire racine "D:Mes Docs".
Le problème est que la fonction FileSearch n'apprécie pas d'avoir une
recherche avec un slash... (J'ai un message: "Erreur d'exéctuion '5':
Argument ou appel de procédure incorrect").
Avez vous une idée sur la façon dont je pourrais m'en sortir ?
bonjour HD colle ceci dans un module standard et ça devrait le faire cette proc a été donnée par michdenis (que nous saluons au passage) qui, lui-même, s'était inspiré de Dave Peterson d'un forum anglophone HTH jps
Option Explicit Dim myRow As Long Dim wks As Worksheet
Sub FoldersList() Set wks = Worksheets.Add myRow = 0
'Sélectionne ton répertoire ici : Call FoldersInFolder("C:TonRepertoire") End Sub
Sub FoldersInFolder(myFolderName As String)
Dim FSO As Object Dim myBaseFolder As Object Dim myFolder As Object Set FSO = CreateObject("scripting.filesystemobject")
Set myBaseFolder = FSO.GetFolder(myFolderName)
For Each myFolder In myBaseFolder.SubFolders myRow = myRow + 1 wks.Cells(myRow, "A").Value = myFolder.Path Call FoldersInFolder(myFolder.Path) Next myFolder
End Sub
"HD" a écrit dans le message de news: dtufik$kbe$
Bonjour,
Je voudrais rechercher en VBA tout les sous-répertoires par exemple "2005 JanvierDocs" parmis le répertoire racine "D:Mes Docs".
Le problème est que la fonction FileSearch n'apprécie pas d'avoir une recherche avec un slash... (J'ai un message: "Erreur d'exéctuion '5': Argument ou appel de procédure incorrect").
Avez vous une idée sur la façon dont je pourrais m'en sortir ?
Merci d'avance pour votre aide -- @+ HD
Michel Pierron
Bonjour HD; Autre solution que FSO:
Sub FolderList() Const iPath$ = "D:Mes Docs" Application.ScreenUpdating = False Workbooks.Add: Cells(1, 1) = iPath: Call DirScan(iPath) End Sub
Private Function DirScan(folder$, Optional i% = 1) Dim oItem As Object With CreateObject("Shell.Application").Namespace(CStr(folder)) For Each oItem In .items If oItem.isfolder Then i = i + 1: Cells(i, 1) = oItem.Path: Call DirScan(oItem.Path, i) End If Next End With End Function
MP
"HD" a écrit dans le message de news: dtufik$kbe$
Bonjour,
Je voudrais rechercher en VBA tout les sous-répertoires par exemple "2005 JanvierDocs" parmis le répertoire racine "D:Mes Docs".
Le problème est que la fonction FileSearch n'apprécie pas d'avoir une recherche avec un slash... (J'ai un message: "Erreur d'exéctuion '5': Argument ou appel de procédure incorrect").
Avez vous une idée sur la façon dont je pourrais m'en sortir ?
Merci d'avance pour votre aide -- @+ HD
Bonjour HD;
Autre solution que FSO:
Sub FolderList()
Const iPath$ = "D:Mes Docs"
Application.ScreenUpdating = False
Workbooks.Add: Cells(1, 1) = iPath: Call DirScan(iPath)
End Sub
Private Function DirScan(folder$, Optional i% = 1)
Dim oItem As Object
With CreateObject("Shell.Application").Namespace(CStr(folder))
For Each oItem In .items
If oItem.isfolder Then
i = i + 1: Cells(i, 1) = oItem.Path: Call DirScan(oItem.Path, i)
End If
Next
End With
End Function
MP
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
dtufik$kbe$1@biggoron.nerim.net...
Bonjour,
Je voudrais rechercher en VBA tout les sous-répertoires par exemple "2005
JanvierDocs" parmis le répertoire racine "D:Mes Docs".
Le problème est que la fonction FileSearch n'apprécie pas d'avoir une
recherche avec un slash... (J'ai un message: "Erreur d'exéctuion '5':
Argument ou appel de procédure incorrect").
Avez vous une idée sur la façon dont je pourrais m'en sortir ?
Sub FolderList() Const iPath$ = "D:Mes Docs" Application.ScreenUpdating = False Workbooks.Add: Cells(1, 1) = iPath: Call DirScan(iPath) End Sub
Private Function DirScan(folder$, Optional i% = 1) Dim oItem As Object With CreateObject("Shell.Application").Namespace(CStr(folder)) For Each oItem In .items If oItem.isfolder Then i = i + 1: Cells(i, 1) = oItem.Path: Call DirScan(oItem.Path, i) End If Next End With End Function
MP
"HD" a écrit dans le message de news: dtufik$kbe$
Bonjour,
Je voudrais rechercher en VBA tout les sous-répertoires par exemple "2005 JanvierDocs" parmis le répertoire racine "D:Mes Docs".
Le problème est que la fonction FileSearch n'apprécie pas d'avoir une recherche avec un slash... (J'ai un message: "Erreur d'exéctuion '5': Argument ou appel de procédure incorrect").
Avez vous une idée sur la façon dont je pourrais m'en sortir ?
Merci d'avance pour votre aide -- @+ HD
HD
Cette macro me donne tout les sous-répertoires du répertoire spécifié... mais je cherche en fait à avoir par exemple tout les répertoires "2005Images" du répertoire racine "D:Mes docs" de sorte que je puisse avoir en résultat par exemple: " D:Mes docsTotoBureau2005Images " -- @+ HD
Cette macro me donne tout les sous-répertoires du répertoire spécifié...
mais je cherche en fait à avoir par exemple tout les répertoires
"2005Images" du répertoire racine "D:Mes docs" de sorte que je puisse
avoir en résultat par exemple:
" D:Mes docsTotoBureau2005Images "
--
@+
HD
Cette macro me donne tout les sous-répertoires du répertoire spécifié... mais je cherche en fait à avoir par exemple tout les répertoires "2005Images" du répertoire racine "D:Mes docs" de sorte que je puisse avoir en résultat par exemple: " D:Mes docsTotoBureau2005Images " -- @+ HD
Michel Pierron
Re HD; Rajoute une condition:
Sub FolderList() Const iPath$ = "D:Mes Docs" Application.ScreenUpdating = False Workbooks.Add End Sub
Private Function DirScan(folder$, Optional i% = 0) Dim oItem As Object With CreateObject("Shell.Application").Namespace(CStr(folder)) For Each oItem In .items If oItem.isfolder Then If InStr(1, oItem.Path, "2005Images", 1) Then i = i + 1: Cells(i, 1) = oItem.Path ' Récursivité des sous répertoires qui remplissent la condition 'Call DirScan(oItem.Path, i) End If End If Next End With End Function
MP
"HD" a écrit dans le message de news: dtv5q0$sr6$
Cette macro me donne tout les sous-répertoires du répertoire spécifié... mais je cherche en fait à avoir par exemple tout les répertoires "2005Images" du répertoire racine "D:Mes docs" de sorte que je puisse avoir en résultat par exemple: " D:Mes docsTotoBureau2005Images " -- @+ HD
Re HD;
Rajoute une condition:
Sub FolderList()
Const iPath$ = "D:Mes Docs"
Application.ScreenUpdating = False
Workbooks.Add
End Sub
Private Function DirScan(folder$, Optional i% = 0)
Dim oItem As Object
With CreateObject("Shell.Application").Namespace(CStr(folder))
For Each oItem In .items
If oItem.isfolder Then
If InStr(1, oItem.Path, "2005Images", 1) Then
i = i + 1: Cells(i, 1) = oItem.Path
' Récursivité des sous répertoires qui remplissent la condition
'Call DirScan(oItem.Path, i)
End If
End If
Next
End With
End Function
MP
"HD" <hd@anti.spam.fr> a écrit dans le message de news:
dtv5q0$sr6$1@biggoron.nerim.net...
Cette macro me donne tout les sous-répertoires du répertoire spécifié...
mais je cherche en fait à avoir par exemple tout les répertoires
"2005Images" du répertoire racine "D:Mes docs" de sorte que je puisse
avoir en résultat par exemple:
" D:Mes docsTotoBureau2005Images "
--
@+
HD
Sub FolderList() Const iPath$ = "D:Mes Docs" Application.ScreenUpdating = False Workbooks.Add End Sub
Private Function DirScan(folder$, Optional i% = 0) Dim oItem As Object With CreateObject("Shell.Application").Namespace(CStr(folder)) For Each oItem In .items If oItem.isfolder Then If InStr(1, oItem.Path, "2005Images", 1) Then i = i + 1: Cells(i, 1) = oItem.Path ' Récursivité des sous répertoires qui remplissent la condition 'Call DirScan(oItem.Path, i) End If End If Next End With End Function
MP
"HD" a écrit dans le message de news: dtv5q0$sr6$
Cette macro me donne tout les sous-répertoires du répertoire spécifié... mais je cherche en fait à avoir par exemple tout les répertoires "2005Images" du répertoire racine "D:Mes docs" de sorte que je puisse avoir en résultat par exemple: " D:Mes docsTotoBureau2005Images " -- @+ HD