Office

  • Office 2007
  • Office
  • Tutti i forum
Domanda

scripting objects?

Si applica a:
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
    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento
1 Utente aveva
questa domanda

È stato utile?

1

Vota

Risposta

Il file dovresti poterlo leggere quì:

https://skydrive.live.com/redir.aspx?cid=7bf53f2c31f04177&resid=7BF53F2C31F04177!134&parid=root

Ciao e grazie.
--
gil

    Set myObject = CreateObject("Scripting.FileSystemObject")
    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

Mauro Gamberini

Moderatore della community
--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

È stato utile?

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

 

    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

Mauro Gamberini

Moderatore della community
--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

È stato utile?

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


    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

È stato utile?

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?

    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

Mauro Gamberini

Moderatore della community
--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

È stato utile?

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
    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

È stato utile?

Con queste poche righe ho chieso aiuto al forum di ExcelExpert dove è pubblicata la macro:

"When i download your example file it runs fine, but when i copy the code to my own sheet - no luck. Any ideas what i'm doing wrong?"

Ecco la risposta:

"happy to help, but this sounds a bit more than a forum question"

Non so cosa pensare.
--
gil
    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

È stato utile?

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.

    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

Mauro Gamberini

Moderatore della community
--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

È stato utile?

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
    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

È stato utile?

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.... ;-)

    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

Mauro Gamberini

Moderatore della community
--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

È stato utile?

Il file dovresti poterlo leggere quì:

https://skydrive.live.com/redir.aspx?cid=7bf53f2c31f04177&resid=7BF53F2C31F04177!134&parid=root

Ciao e grazie.
--
gil
    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

È stato utile?

1

Vota

Risposta

Il file dovresti poterlo leggere quì:

https://skydrive.live.com/redir.aspx?cid=7bf53f2c31f04177&resid=7BF53F2C31F04177!134&parid=root

Ciao e grazie.
--
gil

    Set myObject = CreateObject("Scripting.FileSystemObject")
    • Sfruttamento o abuso di minori
    • Molestie o minacce
    • Contenuto inappropriato o per adulti
    • Nudità
    • Linguaggio blasfemo
    • Pirateria software
    • SPAM/Pubblicità
    • Pericolo di virus/spyware/malware
    • Altra violazione delle Condizioni per l'utilizzo o del Codice di comportamento

Mauro Gamberini

Moderatore della community
--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu
<< PrecedentePagina di 2 Successiva >>

I messaggi contrassegnati come risposte non possono essere eliminati

Per eliminare questo messaggio, annulla prima il contrassegno di risposta.

Motivo per rimuovere l'inoltro


Unisci

Immetti l'ID thread del thread in cui si esegue l'unione


La risposta sarà pubblicata in un thread pubblico

Stai rispondendo a una parte pubblica di questo thread. Per rispondere in privato, fai clic su Annulla, seleziona la scheda Messaggi privati e scegli Rispondi sul messaggio privato.

Non visualizzare questo messaggio in futuro

Per segnalare un abuso, accedi o continua senza accedere

Grazie.

Segnala abuso

Tipo di abuso:

Dettagli (facoltativi):

Segnala abuso

Tipo di abuso:

Dettagli (obbligatori):
Immetti i caratteri che vedi (obbligatorio):
Digita i numeri visualizzati nell'immagine.
Riproduci l'audio e digita i numeri che ascolti.
Mostra un'altra immagine.

Accedi

Puoi accedere anche con l'account di Hotmail, Xbox Live, Messenger o msn.

Non possiedi uno di questi account?

Accesso in corso...
La pagina si aggiornerà automaticamente una volta effettuato l'accesso.
Se riscontri problemi, puoi chiudere il messaggio e riprovare a collegarti.