J'utilise le code suivant pour lire les noms de fichiers dans une feuille Excel, mais j'aimerais inclure des sous-dossiers et capturer le chemin complet du fichier. J'ai essayé quelques petites choses mais aucune n'a fonctionné. J'ai bricolé cela ensemble à partir de morceaux de code d'autres personnes édités pour fonctionner dans ma situation, malheureusement cela signifie que ma compréhension n'est pas aussi approfondie qu'elle devrait l'être.Lecture des chemins de fichier à partir de dossiers et de sous-dossiers dans Excel
Les fichiers sont des fichiers audio (WAV ou MP3), le reste de la feuille de calcul contiendra des métadonnées qui seront utilisés pour marquer les fichiers: artiste, titre, album, etc.
Option Explicit
Sub GetFileNames()
Dim xRow As Long
Dim xDirect$, xFname$, InitialFoldr$
InitialFoldr$ = "C:\"
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = Application.DefaultFilePath & "\"
.Title = "Please select the folder to list audio files from"
.InitialFileName = InitialFoldr$
.Show
If .SelectedItems.Count <> 0 Then
xDirect$ = .SelectedItems(1) & "\"
xFname$ = Dir(xDirect$, 7)
Do While xFname$ <> ""
Worksheets("Metadata").Activate
ActiveSheet.Range("A2").Select
ActiveCell.Offset(xRow) = xFname$
xRow = xRow + 1
xFname$ = Dir
Loop
Dim x&
With Application
.ScreenUpdating = False
Rows.Hidden = False
Rows.Hidden = True
For x = 1 To Rows.Count
If .WorksheetFunction.CountA(Rows(x)) > 0 Then Rows(x).Hidden = False
Next x
.ScreenUpdating = False
End With
Worksheets("Metadata").Visible = True
Worksheets("Menu").Visible = False
End If
End With
End Sub
Je suis très nouveau à VBA mais je commence à saisir une partie de celui-ci.
Merci, mais je ne veux pas trouver que mp3s, il a besoin de me montrer tout dans les dossiers, il pourrait être un mélange de MP3s, WAVs, aiffs, etc etc. Il WMAs fonctionne parfaitement comme il est Pour le dossier racine et les noms de fichiers, je veux juste qu'il soit légèrement plus flexible en regardant dans les sous-dossiers et en retournant les chemins de fichiers plutôt que les noms. Je peux toujours couper les chemins si je trouve que j'ai seulement besoin de noms de fichiers. – user3506327
Il suffit de supprimer la ligne 'If item.Type = ...' et la fin correspondante If ci-dessous et il va extraire tous les fichiers dans tous les sous-dossiers – steveo40
Si cela répond à votre question, pourriez-vous s'il vous plaît marquer comme réponse. Merci – steveo40