Risultati da 1 a 18 di 18

Discussione: Lista nomi file varie cartelle



  1. #1
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Lista nomi file varie cartelle

    Salve a tutti, confido nella vostra bravura :)

    ho trovato questa macro in vba che funziona bene e mi crea una lista in excel a partire dalla colonna A di tutti i nomi dei file in quella cartella..
    preciso che tutti i file saranno chiamati "001-xxxx 002-xxx 003-- etc " avranno un progressivo come inizio.

    Codice: 
    Sub LeggeFileInDir()
    Dim strFile As String
    Dim r As Integer
    mFolder = "C:\PRV\" ' directory di cui ottenere in colonna A la lista file
    strFile = Dir(mFolder & "*.*")
    r = 1
    Do While strFile <> ""
    Cells(r, 1) = strFile
    strFile = Dir
    r = r + 1
    Loop
    End Sub
    avrei bisogno di modificarla, innanzitutto devo puntare più directory, devo fare l'elenco di file in circa 20 cartelle, e poi metterli in ordine dal più piccolo al più grande, in modo da sapere quale è l'ultimo creato.

    spero di essermi spiegato sono sempre di corsa a scrivere questi disperati messaggi ehehe..


    grazie mille a tutti!
    Ultima modifica fatta da:cromagno; 08/01/16 alle 20:11 Motivo: Inserito codice VBA tra i TAG [CODE][/CODE].

  2. #2
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    Salve a tutti, confido nella vostra bravura :)

    ho trovato questa macro in vba che funziona bene e mi crea una lista in excel a partire dalla colonna A di tutti i nomi dei file in quella cartella..
    preciso che tutti i file saranno chiamati "001-xxxx 002-xxx 003-- etc " avranno un progressivo come inizio.

    Sub LeggeFileInDir()
    Dim strFile As String
    Dim r As Integer
    mFolder = "C:\PRV\" ' directory di cui ottenere in colonna A la lista file
    strFile = Dir(mFolder & "*.*")
    r = 1
    Do While strFile <> ""
    Cells(r, 1) = strFile
    strFile = Dir
    r = r + 1
    Loop
    End Sub
    avrei bisogno di modificarla, innanzitutto devo puntare più directory, devo fare l'elenco di file in circa 20 cartelle, e poi metterli in ordine dal più piccolo al più grande, in modo da sapere quale è l'ultimo creato.

    spero di essermi spiegato sono sempre di corsa a scrivere questi disperati messaggi ehehe..


    grazie mille a tutti!
    ciao Mesinex

    Non ho controllato cosa faccia la tua macro ma ho sistemato il nome delle directory (ne puoi mettere quante ne vuoi), le devi mettere nel foglio2 nella colonna "A" come vedrai dall'allegato.
    Per il resto non so cosa debba fare la macro.
    Comincia vedere se ti va bene quanto fatto poi eventualmente ne riparliamo

    In rosso le modifiche fatte al tuo codice.

    Codice: 
    Sub LeggeFileInDir()
    
    Dim wsh, wsh1 As Worksheet
    Dim uriga, i As Long
    Dim strFile As String
    Dim r As Integer
    
    
    Set wsh = ThisWorkbook.Worksheets("Foglio2")
    Set wsh1 = ThisWorkbook.Worksheets("Foglio1")
    
    
    uriga = Range("A" & Rows.Count).End(xlUp).Row
    
    
    For i = 1 To uriga
    mFolder = wsh.Range("A" & i).Value
    
    strFile = Dir(mFolder & "*.*")
    r = 1
    Do While strFile <> ""
    wsh1.Cells(r, 1) = strFile
    strFile = Dir
    r = r + 1
    Loop
    
    
    Next
    
    
    Set wsh = Nothing
    Set wsh1 = Nothing
    End Sub
    File Allegati File Allegati

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  3. #3
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    la macro quella che ho messo non faceva altro che leggere i nomi della cartella (la directory) indicata e nella colonna "A" iniziava a scriverli progressivi verso il basso,

    a me serve puntare più directory e metterli sempre tutti in fila in una unica colonna, e poi applicare un filtro e fare ordina crescente (quest'ultimo lo so fare XD)

    per quanto riguarda la tua macro, innanzitutto ti ringrazio per la disponibilità, poi ho provato a sostituire le directory nel foglio 2, con le mie, ma mi dice errore di compilazione variabile non definita (la variabile è mfolder)

  4. #4
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    la macro quella che ho messo non faceva altro che leggere i nomi della cartella (la directory) indicata e nella colonna "A" iniziava a scriverli progressivi verso il basso,

    a me serve puntare più directory e metterli sempre tutti in fila in una unica colonna, e poi applicare un filtro e fare ordina crescente (quest'ultimo lo so fare XD)

    per quanto riguarda la tua macro, innanzitutto ti ringrazio per la disponibilità, poi ho provato a sostituire le directory nel foglio 2, con le mie, ma mi dice errore di compilazione variabile non definita (la variabile è mfolder)
    molto probabilmente non ho definito la variabile fallo tu :

    dim mfolder as string

    Ciao.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  5. #5
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    ok, ora funziona, l'unico problema è che mi conta solo la prima directory non cerca nelle altre...
    mi dispiace molto farti lavorare ma purtroppo non ci capisco niente di vb... io cerco di impegnarmi ma è un linguaggio arabo per me forse sbaglio solo l'approccio e non ho le basi..

  6. #6
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    ok, ora funziona, l'unico problema è che mi conta solo la prima directory non cerca nelle altre...
    mi dispiace molto farti lavorare ma purtroppo non ci capisco niente di vb... io cerco di impegnarmi ma è un linguaggio arabo per me forse sbaglio solo l'approccio e non ho le basi..
    scusa mesinex potresti mettermi in condivisione il tuo file eliminando magari i dati sensibili. Vorrei cercare di capire.

    ciao

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  7. #7
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    non ho un file excel, semplicemente, inserendo quella macro, ed indicando in essa la directory di dove voglio leggere i nomi dei file, nella colonna A riga 1 del mio foglio excel, venivano scritti tutti i nomi dei file che leggeva in quella cartella.

    io avrei bisogno di potere aggiungere più directory e creare una lunga lista di nomi di file tutto qua

  8. #8
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    non ho un file excel, semplicemente, inserendo quella macro, ed indicando in essa la directory di dove voglio leggere i nomi dei file, nella colonna A riga 1 del mio foglio excel, venivano scritti tutti i nomi dei file che leggeva in quella cartella.

    io avrei bisogno di potere aggiungere più directory e creare una lunga lista di nomi di file tutto qua
    ma guarda che le righe rosse che ho aggiunto nel tuo codice, fanno proprio questo, nel foglio 2 colonna A vanno messi i percorsi delle cartelle
    ogni volta che finisce una, va alla riga successiva e legge la directory successiva fino alla fine. L'unica cosa di cui mi accorgo adesso,
    r = 1 devi metterlo prima di for i = 1 to uriga.

    ciao.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  9. #9

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1011
    Versione Office
    .
    Likes ricevuti
    365
    Likes dati
    0
    Ciao,

    Citazione Originariamente Scritto da Baloon_50 Visualizza Messaggio
    In rosso le modifiche fatte al tuo codice.
    Codice: 
    Sub LeggeFileInDir()
    
    Dim wsh, wsh1 As Worksheet
    Dim uriga, i As Long
    .....
    attenzione che quel modo di dichiarare le variabili non fa quello che credi: solo wsh1 sarà di tipo Worksheet, wsh sarà di tipo Variant; idem per uriga che sarà variant e non long.
    Le dichiarazioni corrette sono:
    Dim wsh as Worksheet, wsh1 As Worksheet
    Dim uriga as Long, i As Long


    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    non ho un file excel, semplicemente, inserendo quella macro, ed indicando in essa la directory di dove voglio leggere i nomi dei file, nella colonna A riga 1 del mio foglio excel, venivano scritti tutti i nomi dei file che leggeva in quella cartella.
    Mi sembra ci sia una evidente contraddizione in quello che scrivi.
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

  10. I seguenti 2 utenti hanno dato un "Like" a scossa per questo post:


  11. #10
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Ciao,



    attenzione che quel modo di dichiarare le variabili non fa quello che credi: solo wsh1 sarà di tipo Worksheet, wsh sarà di tipo Variant; idem per uriga che sarà variant e non long.
    Le dichiarazioni corrette sono:
    Dim wsh as Worksheet, wsh1 As Worksheet
    Dim uriga as Long, i As Long




    Mi sembra ci sia una evidente contraddizione in quello che scrivi.
    Grazie Scossa per la precisazione :261:

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  12. #11
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Citazione Originariamente Scritto da scossa Visualizza Messaggio
    Mi sembra ci sia una evidente contraddizione in quello che scrivi.
    intendevo dire che non ho un file excel già pronto con dati da potervi mandare :)

    è un semplice file excel vuoto con quella macro :)

    scusate l'imprecisione

  13. #12
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    Dovrei avere fatto tutto, solo che non funziona :( non da errore ma non scrive i nomi dei file..

    ti allego comunque il file anche se banale.

    grazie mille!
    File Allegati File Allegati

  14. #13
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    Dovrei avere fatto tutto, solo che non funziona :( non da errore ma non scrive i nomi dei file..

    ti allego comunque il file anche se banale.

    grazie mille!
    Ciao Mesinex prova a vedere se va bene.
    I nomi delle directory vanno messi in colonna "A" del foglio 2 (come da esempio sul file)
    nel foglio 1 ti ritroverai i nomi dei file delle varie directory

    Fammi sapere

    Codice: 
    Sub LeggeFileInDir()     
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim wsh As Worksheet, wsh1 As Worksheet
    Dim uriga As Long, i As Integer, a As Integer
        
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set wsh = ThisWorkbook.Worksheets("Foglio1")
    Set wsh1 = ThisWorkbook.Worksheets("Foglio2")
    uriga = wsh1.Range("A" & Rows.Count).End(xlUp).Row
    a = 2
         
    For i = 1 To uriga
        Set objFolder = objFSO.GetFolder(wsh1.Range("A" & i).Value)
        For Each objFile In objFolder.Files
            wsh.Cells(a, 1).Value = objFile.Name
            a = a + 1
        Next
    Next
        
    Set objFolder = Nothing
    Set objFile = Nothing
    Set objFSO = Nothing
    Set wsh = Nothing
    Set wsh1 = Nothing
    
    
    End Sub
    File Allegati File Allegati

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  15. #14
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Ho fatto una piccola modifica che, oltre al nome del file, ti aggiunge anche la directory in cui si trova.

    Codice: 
    Sub 
    LeggeFileInDir()     
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim wsh As Worksheet, wsh1 As Worksheet
    Dim uriga As Long, i As Integer, a As Integer
        
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set wsh = ThisWorkbook.Worksheets("Foglio1")
    Set wsh1 = ThisWorkbook.Worksheets("Foglio2")
    uriga = wsh1.Range("A" & Rows.Count).End(xlUp).Row
    a = 2
         
    For i = 1 To uriga
        Set objFolder = objFSO.GetFolder(wsh1.Range("A" & i).Value)
        For Each objFile In objFolder.Files
            wsh.Cells(a, 1).Value = wsh1.Range("A" & i).Value & "\" & objFile.Name
            a = a + 1
        Next
    Next
        
    Set objFolder = Nothing
    Set objFile = Nothing
    Set objFSO = Nothing
    Set wsh = Nothing
    Set wsh1 = Nothing
    
    
    End Sub
    File Allegati File Allegati

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  16. #15
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    perfetto sei un campione !!

    grazie mille :) la prima macro con solo i nomi dei file è perfetta!

    ti ringrazio moltissimo :)

    adesso provo a farne un'altra io uguale ma che agisce sulla colonna "b" del primo foglio con altre directory :) così se riesco capisco anche come si scrive :P e non ti devo disturbare ancora!


    p.s. ho visto che legge solo i nomi dei file, è possibile farla anche che legge il nome delle cartelle? ammettiamo che ho cartella 1 che contiere 3 cartelle, se gli do la directory della cartella 1 non funziona, perchè non riesce a leggere il nome delle cartelle, c'è qualche modo per farne una univoca che legga qualsiasi cosa in qualsiasi percorso?

  17. #16
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    perfetto sei un campione !!

    grazie mille :) la prima macro con solo i nomi dei file è perfetta!

    ti ringrazio moltissimo :)

    adesso provo a farne un'altra io uguale ma che agisce sulla colonna "b" del primo foglio con altre directory :) così se riesco capisco anche come si scrive :P e non ti devo disturbare ancora!


    p.s. ho visto che legge solo i nomi dei file, è possibile farla anche che legge il nome delle cartelle? ammettiamo che ho cartella 1 che contiere 3 cartelle, se gli do la directory della cartella 1 non funziona, perchè non riesce a leggere il nome delle cartelle, c'è qualche modo per farne una univoca che legga qualsiasi cosa in qualsiasi percorso?
    è possibile sì ma bisogna stravolgere tutto il codice (tieni presente che ho fatto ricerche su internet e poi l'ho adattato alle tue esigenze)

    :98:

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  18. #17
    L'avatar di Mesinex
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Alessandria
    Età
    26
    Messaggi
    10
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0
    ok, va bene :) grazie mille, per ora lasciamo stare allora poi nel caso ci penseremo

  19. #18
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49
    Citazione Originariamente Scritto da Mesinex Visualizza Messaggio
    ok, va bene :) grazie mille, per ora lasciamo stare allora poi nel caso ci penseremo
    ok allora se va tutto bene ti pregherei di mettere questa discussione come [RISOLTO] in alto su "strumenti discussione"

    grazie ancora per il riscontro

    ciao.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

Discussioni Simili

  1. unire file (cartelle) excel in un unico file
    Di Nhio82 nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 11/11/17, 21:12
  2. [Tutorial VBA] Processare Cartelle o file - Il File Sistem
    Di dracoscrigno nel forum Imparando Excel & VBA - Tutorial di Excel-
    Risposte: 6
    Ultimo Messaggio: 02/03/17, 09:26
  3. confrontare e trovare corrispondenze in una lista di nomi.
    Di Emyl73 nel forum Domande su Excel in generale
    Risposte: 13
    Ultimo Messaggio: 24/01/17, 15:13
  4. [Risolto] Pulizia di un foglio excel costituito da una lista di nomi copiati da una pagina web
    Di Master nel forum Domande su Excel VBA e MACRO
    Risposte: 33
    Ultimo Messaggio: 02/10/16, 13:30
  5. Ricerca di Nome e Cognome da una lista di nomi simili
    Di Gerardo Zuccalà nel forum Domande su Excel in generale
    Risposte: 20
    Ultimo Messaggio: 27/08/15, 15:16

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •