Note: The other languages of the website are Google-translated. Back to English
English English

Comment répertorier tous les dossiers et sous-dossiers dans Excel?

Avez-vous déjà souffert de ce problème qui répertorie tous les dossiers et sous-dossiers d'un répertoire spécifié dans une feuille de calcul? Dans Excel, il n'existe pas de moyen rapide et pratique d'obtenir le nom de tous les dossiers d'un répertoire spécifique à la fois. Pour faire face à la tâche, cet article peut vous aider.

Lister tous les dossiers et sous-dossiers avec le code VBA

Onglet Office Activez la modification et la navigation par onglets dans Office et simplifiez considérablement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, les graphiques et tout autre élément les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement à l'avenir.
  • Plus de 20 fonctionnalités de texte: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Outils de fusion: Plusieurs classeurs et feuilles en un seul; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils de fractionnement: Diviser les données en plusieurs feuilles en fonction de la valeur; Un classeur vers plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller sauter Lignes cachées / filtrées; Compte et somme par couleur d'arrière-plan; Envoyez des e-mails personnalisés à plusieurs destinataires en masse.
  • Super filtre: Créez des schémas de filtres avancés et appliquez-les à toutes les feuilles; Sort par semaine, jour, fréquence et plus encore; Filtre par gras, formules, commentaire ...
  • Plus de 300 fonctionnalités puissantes; Fonctionne avec Office 2007-2019 et 365; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

flèche bleue bulle droite Lister tous les dossiers et sous-dossiers avec le code VBA


Si vous souhaitez obtenir tous les noms de dossier à partir d'un répertoire spécifié, le code VBA suivant peut vous aider, procédez comme suit:

1. Maintenez le ALT + F11 clés, et il ouvre le Fenêtre Microsoft Visual Basic pour Applications.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Fenêtre du module.

Code VBA: liste tous les noms de dossiers et de sous-dossiers

Sub FolderNames()
'Update 20141027
Application.ScreenUpdating = False
Dim xPath As String
Dim xWs As Worksheet
Dim fso As Object, j As Long, folder1 As Object
With Application.FileDialog(msoFileDialogFolderPicker)
    .Title = "Choose the folder"
    .Show
End With
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Set xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 5).Value = Array("Path", "Dir", "Name", "Date Created", "Date Last Modified")
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder1 = fso.getFolder(xPath)
getSubFolder folder1
xWs.Cells(2, 1).Resize(1, 5).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 5).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Dim SubFolder As Object
Dim subfld As Object
Dim xRow As Long
For Each SubFolder In prntfld.SubFolders
    xRow = Range("A1").End(xlDown).Row + 1
    Cells(xRow, 1).Resize(1, 5).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder.DateLastModified)
Next SubFolder
For Each subfld In prntfld.SubFolders
    getSubFolder subfld
Next subfld
End Sub

3. Puis appuyez F5 clé pour exécuter ce code, et un Choisissez le dossier La fenêtre apparaîtra, puis vous devez sélectionner le répertoire dans lequel vous souhaitez répertorier les noms de dossier et de sous-dossier, voir capture d'écran:

doc-list-nom-de-dossier-1

4Cliquez sur OK, et vous obtiendrez le chemin du dossier et des sous-dossiers, le répertoire, le nom, la date de création et la date de dernière modification dans un nouveau classeur, voir capture d'écran:

doc-list-nom-de-dossier-1


Article connexe:

Comment répertorier les fichiers d'un répertoire dans une feuille de calcul dans Excel?


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2019 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (18)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup. J'utilisais l'invite cmd pour avoir un txt avec mes dossiers, puis le copier sur Excel, mais maintenant vous me facilitez les choses :)
Ce commentaire a été minimisé par le modérateur sur le site
Que se passe-t-il si j'ai besoin de créer le lien également pour le dossier que dois-je modifier dans le codage et ne pouvons-nous pas créer un bouton et lui lier le même codage, il sera donc utile pour les utilisateurs qui ne savent pas comment exécuter des macros
Ce commentaire a été minimisé par le modérateur sur le site
J'ai fait exactement ce que vous demandez. J'ai placé le logo de ma société sur la feuille de travail, puis j'ai cliqué dessus avec le bouton droit de la souris et attribué une macro (qui est le code ci-dessus). Vous pouvez également insérer des instructions d'utilisation pratiques.
Ce commentaire a été minimisé par le modérateur sur le site
Ce code a vraiment sauvé la journée. Merci de l'avoir partagé.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, je viens de suivre vos instructions mais j'obtiens des erreurs lorsque j'appuie sur F5 pour exécuter. L'erreur ci-dessous met en évidence "Dim xWs As Worksheet". Existe-t-il un code mis à jour que je peux utiliser ? Erreur de compilation : type défini par l'utilisateur non défini
Ce commentaire a été minimisé par le modérateur sur le site
[quote]Bonjour, je viens de suivre vos instructions, mais j'obtiens des erreurs lorsque j'appuie sur F5 pour exécuter. L'erreur ci-dessous met en évidence "Dim xWs As Worksheet". Existe-t-il un code mis à jour que je peux utiliser ? Erreur de compilation : type défini par l'utilisateur non définiPar Caralyn[/quote] Utilisez-vous le module complémentaire Kutools ou l'éditeur MS Excel VBA ? Comme je n'utilise pas le module complémentaire, je ne peux pas reproduire votre erreur. L'utilisation de MS VBA Editor fonctionne sans aucune erreur.
Ce commentaire a été minimisé par le modérateur sur le site
Lorsque j'exécute ce code, cela fonctionne mais il ne montre que le premier dossier du côté du dossier que j'ai choisi. Par exemple, lorsque j'exécute le code, je choisis "C:\Users\Johnson\Music" (Remarque : j'ai 70 dossiers dans mon dossier Musique). Lorsque le code s'exécute, il affiche uniquement le premier dossier, puis répertorie tous les dossiers à l'intérieur. dossier. Je voudrais qu'il répertorie tous les dossiers dans le dossier Musique.
Ce commentaire a été minimisé par le modérateur sur le site
Je suis avec les autres - ça marche jusqu'à un certain point.

Pour moi, ce point est qu'il crée le nouveau s/s, détaille le dossier que j'ai montré (dans les cellules A1), la barre en surbrillance jaune dans la ligne 2 avec les en-têtes suivis de rien d'autre !

Le dossier que je regarde est vide à l'exception des sous-dossiers (c'est-à-dire qu'aucun fichier de données n'existe) et les sous-dossiers n'apparaissent pas du tout.

Quelqu'un peut-il m'aider à lister les sous-dossiers et leurs fichiers ?
Ce commentaire a été minimisé par le modérateur sur le site
Je l'ai modifié pour ajouter de la taille:



Noms de sous-dossiers()
'Mise à jour 20141027
Application.ScreenUpdating = Faux
Estomper xPath en tant que chaîne
Feuille de travail Dim xWs As
Dim fso As Object, j As Long, folder1 As Object
Avec Application. FileDialog (msoFileDialogFolderPicker)
.Title = "Choisir le dossier"
.Spectacle
Terminer par
On Error Resume Next
xPath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\"
Application.Workbooks.Add
Définir xWs = Application.ActiveSheet
xWs.Cells(1, 1).Value = xPath
xWs.Cells(2, 1).Resize(1, 6).Value = Array("Chemin", "Dir", "Nom", "Date de création", "Date de dernière modification","Taille")
Définissez fso = CreateObject ("Scripting.FileSystemObject")
Définir dossier1 = fso.getFolder(xPath)
getSubFolder dossier1
xWs.Cells(2, 1).Resize(1, 6).Interior.Color = 65535
xWs.Cells(2, 1).Resize(1, 6).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Sub getSubFolder(ByRef prntfld As Object)
Estomper le sous-dossier en tant qu'objet
Dim subfld As Object
Dim xRow As Long
Pour chaque sous-dossier dans prntfld.SubFolders
xRow = Range("A1").End(xlDown).Row + 1
Cellules(xRow, 1).Resize(1, 6).Value = Array(SubFolder.Path, Left(SubFolder.Path, InStrRev(SubFolder.Path, "\")), SubFolder.Name, SubFolder.DateCreated, SubFolder. DateLastModified, SubFolder.Size)
Sous-dossier suivant
Pour chaque sous-dossier dans prntfld.SubFolders
sous-dossier getSubFolder
Sous-dossier suivant
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Lorsque vous incluez la fonction SubFolder.Size, le script ne liste plus tous les sous-dossiers, uniquement le premier niveau.
Comment puis-je inclure la taille et obtenir la liste de tous les sous-dossiers ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour. Pouvez-vous s'il vous plaît m'aider sur un code que j'ai du mal à trouver.

Voici les exigences pour le code.



1. Le VBA doit parcourir tous les dossiers et sous-dossiers
et vérifier chaque type de fichier. L'utilisateur ne doit donner le chemin que pour
le dossier supérieur. Le code devrait alors vérifier tous les dossiers et sous-dossiers
dans le dossier supérieur.



2. Après avoir vérifié les fichiers, le code doit compresser tous les fichiers
qui n'ont pas été consultés depuis plus de 3 mois. La période consultée est
quelque chose que je devrais pouvoir changer à l'avenir si nécessaire. Cela devrait
permettez-moi de le changer à 1 mois ou 5 mois si nécessaire.



3. Après avoir compressé les fichiers, le code doit supprimer le
fichiers originaux qui ont été compressés.



4. Le fichier compressé doit être enregistré dans le même chemin que le
fichier d'origine.
Ce commentaire a été minimisé par le modérateur sur le site
Excellent outil ! Après de longues recherches, j'ai trouvé ce jouet précis :)
Ce commentaire a été minimisé par le modérateur sur le site
Exactement ce dont j'avais besoin, et des instructions parfaitement claires sur la façon de le faire fonctionner. Merci beaucoup
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup !, très utile.
Ce commentaire a été minimisé par le modérateur sur le site
Cela a fonctionné et comment... Merci beaucoup. Juste un ajout - à l'étape 3, j'ai dû cliquer sur Step Into, puis seule la touche F5 a fonctionné pour choisir le dossier.
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup pour ce code utile. est-ce possible de sauvegarder le résultat dans le même classeur et non dans un nouveau?
Ce commentaire a été minimisé par le modérateur sur le site
Merci, c'est exactement ce dont nous avions besoin pour enregistrer les dossiers de nos clients.
Ce commentaire a été minimisé par le modérateur sur le site
Excellent travail... C'est très utile pour moi, merci beaucoup
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés