[VBA Excel] Liste les dossier d'un répertoire
Résolu
ben13.51
Messages postés
115
Statut
Membre
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
je souhaite établir dans une feuille Excel la liste des dossiers d'un répertoire dont je précise l'adresse dans une Input Box...
N'étant pas très familier avec l'utilisation des Objets sous VBA quelqu'un peut-il m'aiguiller sur la façon de procéder pour arriver à mes fins...
Merci d'avance
Cordialement
Ben
je souhaite établir dans une feuille Excel la liste des dossiers d'un répertoire dont je précise l'adresse dans une Input Box...
N'étant pas très familier avec l'utilisation des Objets sous VBA quelqu'un peut-il m'aiguiller sur la façon de procéder pour arriver à mes fins...
Merci d'avance
Cordialement
Ben
A voir également:
- Vba lister les dossiers d'un répertoire
- Lister les disques cmd - Guide
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Mettre un mot de passe sur un dossier - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Impossible de supprimer un dossier - Guide
2 réponses
Bonjour,
;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Option Explicit
Private oCollec As Collection
Public Sub Macro1()
Dim chemin As String
chemin = InputBox("Entrez le chemin du répertoire", "Répertoire")
Set oCollec = New Collection
SearchAllFilesInFolders (chemin)
AfficheListe
Set oCollec = Nothing
End Sub
Private Sub SearchAllFilesInFolders(ByVal chemin As String)
Dim fso As FileSystemObject
Dim dossier As Folder
Set fso = New FileSystemObject
Set dossier = fso.GetFolder(chemin)
Call scanFolder(dossier)
End Sub
Private Sub scanFolder(ByVal dossier As Folder)
Dim sousdossier As Folder
Dim fichier As File
For Each fichier In dossier.Files
oCollec.Add fichier
Next
For Each sousdossier In dossier.SubFolders
Call scanFolder(sousdossier)
Next
End Sub
Private Sub AfficheListe()
Dim i As Long
Dim lig As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)
lig = 2
With ws
For i = 1 To oCollec.Count
.Range("A" & lig).Value = oCollec(i)
lig = lig + 1
Next i
End With
End Sub
;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Cependant lors du premier essai j'ai un message d'erreur au niveau de la Private Sub ScanFolder.
Il semble que le Type de variable "as Folder" ne soit pas reconnu car j'ai le message suivant :
Erreur de compilation : Type défini par l'utilisateur non défini.
Que dois-je faire pour corriger ce problème...
Encore merci pour votre aide
Cordialement
Ben
;o)
Effectivement ça change tout.
Et j'ai pu faire ce que je voulais.
Merci pour le temps que vous m'avez consacré!
Cordialement
Ben
J'arrête pas de bugger sur la commande:
oCollec.Add fichier
avec pour message : erreur d'éxécution 424, objet requis.
Pouvez vous m'aider ?
merci
Colle ton code ici que l'on puisse voir.
Parce que juste avec ça, on ne peut rien dire.