maurogsc.eu
|
![]() |
home ==> Excel: come fare per ==> Sistema: elencare i files delle subdirectories di una directory
Sistema: elencare i files delle
subdirectories di una directory
- VBA
NOTA. La soluzione ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dal codice o dalla soluzione proposta se usati impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.
1 - Codice che mostra in varie MsgBox i vari files delle subdirectories della directory C:\Prova. Il codice va copia/incollato in un modulo standard.
Public Sub m()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim objSubfolder As Object
Dim colSubfolders As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Prova")
Set colSubfolders = objFolder.Subfolders
For Each objSubfolder In colSubfolders
For Each objFile In objSubfolder.Files
MsgBox objFile.Name
Next
Next
Set objSubfolder = Nothing
Set colSubfolders = Nothing
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
2 - Codice che elenca nel Foglio1 i nomi dei file in colonna A e i nomi delle subdirectory in cui sono contenuti in colonna B. La directory che contiene le subdirectories è C:\Prova. Il codice va copia/incollato in un modulo standard.
Public Sub m()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim objSubfolder As Object
Dim colSubfolders As Object
Dim sh As Worksheet
Dim lCont As Long
lCont = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Prova")
Set colSubfolders = objFolder.Subfolders
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
For Each objSubfolder In colSubfolders
For Each objFile In objSubfolder.Files
.Range("A" & lCont).Value = objFile.Name
.Range("B" & lCont).Value = objSubfolder.Name
lCont = lCont + 1
Next
Next
End With
Set sh = Nothing
Set objSubfolder = Nothing
Set colSubfolders = Nothing
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
Modificate il percorso ed il nome della directory che contiene le subdirectories con il vostro.
Per ulteriori informazioni su Microsoft Excel ed il suo Visual Basic, utilizzate questo
forum:
http://social.answers.microsoft.com/Forums/it-IT/officeexcelit/threads
Ultimo aggiornamento di questa pagina: 23/03/2011 - mauro gamberini