Afficher tout les chemin d'acsée d'un dosier dans un tableur ?
sissou_007
Messages postés
81
Date d'inscription
Statut
Membre
Dernière intervention
-
Morgothal Messages postés 1350 Statut Membre -
Morgothal Messages postés 1350 Statut Membre -
Bonjour,
Je possé un dosier ou j'ai 23 sous dossier et dans chacun de ses sous dossier, il y a des fichier, je souhaiterais crée un fichier index sous Exel, récapitulant tout les chemin d'acsée avec leurs lien hypertexte... Il y a t-il une formule ou un script VBA permettant de faire ce que je demande ?
Merci bien :)
Je possé un dosier ou j'ai 23 sous dossier et dans chacun de ses sous dossier, il y a des fichier, je souhaiterais crée un fichier index sous Exel, récapitulant tout les chemin d'acsée avec leurs lien hypertexte... Il y a t-il une formule ou un script VBA permettant de faire ce que je demande ?
Merci bien :)
A voir également:
- Afficher tout les chemin d'acsée d'un dosier dans un tableur ?
- Comment trier un tableur - Guide
- Afficher appdata - Guide
- Word afficher les commentaires dans la marge - Guide
- Afficher les 0 dans excel - Guide
- Chaque fichier en ligne sur le web a un chemin d’accès sur un serveur. ✓ - Forum Windows
4 réponses
Salut,
Tu peux récupérer le chemin d'accès et le nom du fichier avec :
Tu peux récupérer le chemin d'accès et le nom du fichier avec :
ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
Dans un script VBA, pour récupérer les chemins :
faire une boucle qui ouvre tous les fichiers .xls d'un dossier, et utiliser ActiveWorkbook.Path pour inscrire le chemin dans une cellule du classeur d'origine...
Je vais voir si j'ai le temps de développer un script aujourd'hui ;)
faire une boucle qui ouvre tous les fichiers .xls d'un dossier, et utiliser ActiveWorkbook.Path pour inscrire le chemin dans une cellule du classeur d'origine...
Je vais voir si j'ai le temps de développer un script aujourd'hui ;)
Voilà un script qui fonctionne chez moi ...
Il faut bien cocher Microsoft Scripting Runtime dans Outils>Référence de l'éditeur VBA.
Il faut donc écrire ce code dans un nouveau module :
Merci à Polux31 !
Il faut bien cocher Microsoft Scripting Runtime dans Outils>Référence de l'éditeur VBA.
Il faut donc écrire ce code dans un nouveau module :
Option Explicit
Private oCollec As Collection
Public Sub Macro1()
Dim chemin As String
chemin = ActiveWorkbook.Path
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
Merci à Polux31 !