Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    17

    [VBA - Excel] Macro per leggere file excel contenuti in sottocartelle

    Ciao a tutti

    io ho questa situazione.
    Una cartella principale in C con path

    C:\Cartella principale

    e in questa cartella delle sottocartelle

    C:\Cartella principale\Sottocartella1
    C:\Cartella principale\Sottocartella2
    C:\Cartella principale\Sottocartella3
    C:\Cartella principale\Sottocartella4

    Ognuna di queste sottocartelle ha un certo numero di file Excel con dei dati da elaborare.
    Come posso creare una macro che mi permetta di aprire i file excel contenuti all'interno di ciascuna sottocartella?? Ovviamente l'apertura dei file deve essere legata all'ordine delle sottocartelle, cioè prima i file contenuti nella sottocartella1, poi quelli contenuti nella sottocartella 2 e così via..

  2. #2
    perchè non usi una funzione ricorsiva?
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

  3. #3
    eccoti un esempio di come lo farei io (a<ggiungi l riferimento a Microsoft Scripting RunTime):

    codice:
    Sub Esegui()
        Dim FSO As Scripting.FileSystemObject, Fold As Scripting.Folder, strNamePadre As String
        Set FSO = New Scripting.FileSystemObject
        strNamePadre = "c:\"
        Set Fold = FSO.GetFolder(strNamePadre)
        Call GuardaFileSCartelle(Fold)
        Set Fold = Nothing
        Set FSO = Nothing
    End Sub
    
    Sub GuardaFileSCartelle(oFold As Scripting.Folder)
        Dim oSFold As Scripting.Folder, oFile As Scripting.File
        For Each oFile In oFold.Files
            If LCase(Right(oFile.Name, 3)) = "xls" Then Call EseguiExcel(oFile.Path)
        Next
        For Each oSFold In oFold.SubFolders
            Call GuardaFileSCartelle(oSFold)
        Next
    End Sub
    
    Sub EseguiExcel(strPathFile As String)
        Dim oWkb As Workbook
        Set oWkb = Application.Workbooks.Open(strPathFile)
        'fai quello che devi fare
        oWkb.Close
        Set oWkb = Nothing
    End Sub
    Bombardare per la pace, è come trombare per la verginità.

    C'è qualcuno al mondo che tromba troppo secondo me...

    Andrea Medici

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.