|
|
Il file dovresti poterlo leggere quì:
https://skydrive.live.com/redir.aspx?cid=7bf53f2c31f04177&resid=7BF53F2C31F04177!134&parid=root
Ciao e grazie.
--
gil
Ho trovato su questa pagina di Internet una macro per listare il contenuto di una directory:
http://excelexperts.com/VBA-Tips-List-Files-In-A-Folder
Ho scaricato il file ed ho constatato che funziona perfettamente. A questo punto ho copiato il codice della macro su un modulo di un mio file di Excel e purtroppo la macro nel mio file non funziona.
Premetto che sono totalmente ignorante in merito agli scripting objects. Alcune ricerche con Google che mi hanno portato a pagine in inglese che non mi hanno chiarito le idee (forse per difficoltà con la lingua).
In conclusione esiste un modo semplice per far funzionare questa macro anche nel mio file?
Grazie.
--
gil
Questa, un po' corretta...;-), fa quello che sembra tu voglia fare nel Foglio1:
Public Sub ListFiles()
lRow = 11
Call ListMyFiles(Range("C7"), Range("C8"))
End Sub
Public Sub ListMyFiles(mySourcePath, IncludeSubfolders)
Dim myObject As Object
Dim mySource As Object
Dim lCol As Long
Dim sh As Worksheet
Set myObject = New Scripting.FileSystemObject
Set mySource = myObject.GetFolder(mySourcePath)
On Error Resume Next
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
For Each myFile In mySource.Files
lCol = 2
.Cells(lRow, lCol).Value = myFile.Path
lCol = lCol + 1
.Cells(lRow, lCol).Value = myFile.Name
lCol = lCol + 1
.Cells(lRow, lCol).Value = myFile.Size
lCol = lCol + 1
.Cells(lRow, lCol).Value = myFile.DateLastModified
lRow = lRow + 1
Next
If IncludeSubfolders Then
For Each mySubFolder In mySource.SubFolders
Call ListMyFiles(mySubFolder.Path, True)
Next
End If
End With
Set myObject = Nothing
Set mySource = Nothing
Set sh = Nothing
End Sub
Se continui ad non riuscire ad utilizzarla, sostituisci la seconda con questa e vedi l'errore che restituisce:
Public Sub ListMyFiles(mySourcePath, IncludeSubfolders)
Dim myObject As Object
Dim mySource As Object
Dim lCol As Long
Dim sh As Worksheet
On Error GoTo RigaErrore
Set myObject = New Scripting.FileSystemObject
Set mySource = myObject.GetFolder(mySourcePath)
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
For Each myFile In mySource.Files
lCol = 2
.Cells(lRow, lCol).Value = myFile.Path
lCol = lCol + 1
.Cells(lRow, lCol).Value = myFile.Name
lCol = lCol + 1
.Cells(lRow, lCol).Value = myFile.Size
lCol = lCol + 1
.Cells(lRow, lCol).Value = myFile.DateLastModified
lRow = lRow + 1
Next
If IncludeSubfolders Then
For Each mySubFolder In mySource.SubFolders
Call ListMyFiles(mySubFolder.Path, True)
Next
End If
End With
RigaChiusura:
Set myObject = Nothing
Set mySource = Nothing
Set sh = Nothing
Exit Sub
RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura
End Sub
Ho provato entrambe i codici che mi hai gentilmente inviato e il risultato è sempre lo stesso:
Errore di compilazione
Tipo definito dall'utente non definito
con la riga NewScripting.FileSystemObject evidenziata.
E' lo stesso errore che compare copiando il codice originale senza modifiche.
Grazie per il tempo che mi hai dedicato.
Ciao.
--
gil
Questo qui, sui miei pc, funziona. Vedi un po':
http://www.maurogsc.eu/esempiforum12/listafileinfoglio.zip
Se funziona anche da te, cosa altro hai nel tuo file?
Il file che mi hai mandato sul mio PC funziona perfettamente. Se però provo a copiare il codice di questo file sul modulo di un altro file NUOVO e completamente VUOTO la macro smette di funzionare e compare il solito messaggio di errore.
Debbo forse cambiare qualche cosa nelle proprietà del Workbook o del Worksheet?
Evidentemente sbaglio qualche cosa ma non riesco a capire dove sta l'errore.
Grazie e ciao.
--
gil
Sembra un problema legato a qualche configurazione del tuo PC.
Confermo che accedo come utente amministratore.
Ho fatto il ripristino di Office Home and Students 2007 secondo quanto consigliato ma non ha risolto il problema.
A questo punto mi arrendo e tu ?
Grazie comunque e buona domenica.
--
gil
Prova a mettere in condivisione un file fatto con il tuo pc su Skydrive:
http://explore.live.com/skydrive
Soluzione alternativa. Se funziona quello del quale ho postato il link, usa quello e modificalo.... ;-)
Il file dovresti poterlo leggere quì:
https://skydrive.live.com/redir.aspx?cid=7bf53f2c31f04177&resid=7BF53F2C31F04177!134&parid=root
Ciao e grazie.
--
gil
Immetti l'ID thread del thread in cui si esegue l'unione
Per segnalare un abuso, accedi o continua senza accedere
Grazie.
|
|
|
|
Non possiedi uno di questi account?