Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment inclure les sous-dossier dans la recherche depuis un répertoire (VBA)

2 réponses
Avatar
Emile63
Bonjour =E0 tous,
La proc=E9dure ci-dessous, (r=E9duite pour l'occasion) explore tous les
fichiers contenus dans un r=E9pertoire indiqu=E9: Chemin
Mon probl=E8me c'est que souvent le r=E9pertoire d=E9sign=E9 contient une
importante
quantit=E9 de sous-r=E9pertoires, et je souhaiterais que l'indication du
chemin
que je pointe, permette d'analiser =E9galement les sous-dossiers de ce
r=E9pertoire.
Est-ce que quelqu'un pourrait me mettre sur la voie?

Je vous remercie d'avance pour vos commentaires,
cordialement,
Emile
---------------------------------------------------------------------------=
-----
Sub Liste_Fichiers_Avec_Macro()
Dim Chemin As String
Chemin =3D ChoixDossier()
Set FS =3D CreateObject("Scripting.FileSystemObject")
If Chemin =3D "" Then End
Set F =3D FS.getFolder(Chemin)
End Sub

Function ChoixDossier()
Dim MonR=E9pertoire As String
MonR=E9pertoire =3D "\\serveur\Emile\"
If Val(Application.Version) >=3D 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName =3D MonR=E9pertoire
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier =3D .SelectedItems(1)
Else
ChoixDossier =3D ""
End If
End With
Else
ChoixDossier =3D InputBox("=BFDepuis quel r=E9pertoire?")
End If
End Function

2 réponses

Avatar
DanielCo
Bonjour.
Voici un exemple; il liste les fichiers du dossier principal et de tous
les sous-dossiers. Tu peux le modifier pour répondre à tes besoins :

Dim Ctr As Long ' à mettre en tête d'un module standard

Sub SousDossiers()
Dim FSO As Object, Dossier As Object
Const DossierPrincipal As String = "d:donneesdaniel"
Application.ScreenUpdating = False
Sheets.Add
Set FSO = CreateObject("scripting.filesystemobject")
Set Dossier = FSO.getfolder(DossierPrincipal)
lectureSousDossiers Dossier
Application.ScreenUpdating = False
End Sub

Sub lectureSousDossiers(Dossier)
For Each f In Dossier.Files
Ctr = Ctr + 1
Cells(Ctr, 1) = f.Path
Next f
For Each d In Dossier.subfolders
lectureSousDossiers d
Next d
End Sub

Daniel


Bonjour à tous,
La procédure ci-dessous, (réduite pour l'occasion) explore tous les
fichiers contenus dans un répertoire indiqué: Chemin
Mon problème c'est que souvent le répertoire désigné contient une
importante
quantité de sous-répertoires, et je souhaiterais que l'indication du
chemin
que je pointe, permette d'analiser également les sous-dossiers de ce
répertoire.
Est-ce que quelqu'un pourrait me mettre sur la voie?

Je vous remercie d'avance pour vos commentaires,
cordialement,
Emile
--------------------------------------------------------------------------------
Sub Liste_Fichiers_Avec_Macro()
Dim Chemin As String
Chemin = ChoixDossier()
Set FS = CreateObject("Scripting.FileSystemObject")
If Chemin = "" Then End
Set F = FS.getFolder(Chemin)
End Sub

Function ChoixDossier()
Dim MonRépertoire As String
MonRépertoire = "serveurEmile"
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = MonRépertoire
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = ""
End If
End With
Else
ChoixDossier = InputBox("¿Depuis quel répertoire?")
End If
End Function
Avatar
Emile63
Bonjour Daniel,
Merci por ton aide et solution.
J'essaie de modifier/adapter a ma procédure, mais pour l'instant je
n'y arrive pas..
Je persiste et te tiendrai au courant. ;-)
Cordialement,
Emile