Afficher visuellement le parcours du contenu dun dossier
Hello Forum,
Je cherche un moyen de faire un équivalent de ce que fait le code ci dessous mais sur les dossiers d'un répertoire donné cette fois, les sous dossiers et fichiers de ce dossier.
dim c as range
with Thisworkbook.worksheets("Feuil1")
For each c in .range("A2:A" & .range("B" & rows.count).end(xlup).row)
c.select
next c
End withL'idée est de faire la même chose, en d'autres termes, afficher visuellement le parcours d'un dossier et son contenu.
En vous remerciant d'avance pour vos suggestions,
Y.
Bonjour,
J'avais utilisé cette macro il y a quelques temps (trouvé je ne sais plus où mais ça correspondait à ce que je voulais faire).
Peut--être que ça peut t'aider.
Dim ligne
Sub arborescence()
Application.ScreenUpdating = False
racine = ChoixDossier() ' ou un répertoire C:\xxx e.g.
If racine = "" Then Exit Sub
Range("A3:E20000").ClearContents
Range("A3").Select
Set fs = CreateObject("Scripting.FileSystemObject")
Set dossier_racine = fs.GetFolder(racine)
ligne = 3
Lit_dossier dossier_racine, 1
End Sub
Sub Lit_dossier(ByRef dossier, ByVal niveau)
Cells(ligne, 1) = String(4 * (niveau - 1), " ") & "[" & dossier.Path & "]"
Cells(ligne, 2) = dossier.Size
Cells(ligne, 4) = dossier.Files.Count
Cells(ligne, 1).Interior.ColorIndex = 36
ligne = ligne + 1
For Each f In dossier.Files
Cells(ligne, 1) = String(4 * niveau, " ") & f.Name
Cells(ligne, 1).Interior.ColorIndex = xlNone
Cells(ligne, 2) = f.Size
Cells(ligne, 3) = f.DateLastModified
Cells(ligne, 4) = f.Attributes
If f.Attributes And vbHidden Then Cells(ligne, 5) = "Caché"
ligne = ligne + 1
Next
For Each d In dossier.SubFolders
Lit_dossier d, niveau + 1
Next
End Sub
Function ChoixDossier()
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = ""
End If
End With
Else
ChoixDossier = InputBox("Répertoire?")
End If
End FunctionRe Paulox,
Merci de ce retour rapide. Il a l'air très bien ce code, je vais le garder sous le coude.
Seulement, il ne répond à mon attente puisque j'ai pu voir qu'il fait des affichages de chemins dans excel. Ce qui m'intéresse ici est de faire un parcours visuel (en sélectionnant le fichier ou dossier pas exemple, pour qu'il se mettre en bleu comme lorsqu'on fait à la main). Le but est de pouvoir afficher un témoin visuel du parcours du dossier.
Y.
Re,
En parcourant un peu ça et là, j'ai trouvé quelque chose qui ressemble à ce que je recherche. Je ne sais pas encore comment l'adapter à mon cas.
Le lien: https://forum.excel-pratique.com/viewtopic.php?t=63617
Moi j'ai ceci qui fonction bien déjà:
Shell Environ("WINDIR") & "\explorer.exe" & Dos, vbNormalFocusCe code m'ouvre bien le chemin vers mon fichier et me le montre. Mais il ne me le met pas surbrillance. J'ai pensé en exploitant le lien à ajouter le " /select, " et ça beug maintenant.
Instruction qui beug: Erreur d'exécution 53: Fichier Introuvable (alors que le dossier existe bien).
Shell Environ("WINDIR") & "\explorer.exe /select," & Dos, vbNormalFocusSerait-ce parce qu'il s'attend à parcourir un fichier ? Je veux parcourir les fichiers dudit dossier de ce répertoire aussi avec la même formulation.
Y.
Re,
Le code qui beugait fonctionne bien désormais. Il fallait juste placer la ligne de code au bon endroit dans le code.
Le programme sélectionne bien le dossier voulu, sélectionne bien chaque fichier parcouru. Problème, il ouvre systématiquement une nouvelle fenêtre pour afficher sa sélection.
Du coup, le nombre de fenêtres ouvertes est égal à la somme du nombre de fichiers parcourus x dossier parcourus.
Comment lui dire de faire ses opérations dans la même fenêtre de parcours?
Y.