VBA: Copiare i files xlsm provenienti da una miriade di sottocartelle

Anonimo
2023-05-10T09:07:37+00:00

Ho una cartella principale C:\ Vattelapesca. Al suo interno ci sono una 40ina di sottocartelle, ognuna con tanti piccoli files, di varie estensioni (circa 30-40 per sottocartella). Periodicamente devo identificare tutti i files xlsm contenuti e copiarli in una cartella di destinazione, per effettuare delle statistiche globali. L'operazione non è difficile da fare manualmente, ma farla ogni 10 gg è una palla immensa e il rischio di dimenticare qualcuno del 1000io di piccoli files è alto. Potete suggerirmi una routine in VBA ?

grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2023-05-10T09:45:18+00:00

Ciao Leonardo

Sono AnnaThomas e sarei felice di aiutarti con la tua domanda. In questo forum, siamo consumatori Microsoft proprio come te.

Sì, è possibile utilizzare VBA per copiare file xlsm da sottocartelle. Ecco un esempio di codice VBA che può essere utilizzato per copiare tutti i file dalle sottocartelle a una cartella di destinazione:

Sub PerformCopy() '===================== chiamata ================================== 'MkDir "DestinationPath" CopyFiles "Percorso di origine con tutte le sottocartelle" & "", "DestinationPath" & "" '==================== Copia sub ============================= Fine sub

Public Sub CopyFiles(ByVal strPath As String, ByVal strTarget As String) Dim FSO come oggetto Dim FileInFromFolder come oggetto Dim FolderInFromFolder come oggetto Dim Fdate As Long Dim intSubFolderStartPos As Long Dim strFolderName come stringa

Set FSO = CreateObject("scripting.filesystemobject") 'Primo ciclo di file Per ogni FileInFromFolder in FSO. GetFolder(strPath). file Fdate = Int(FileInFromFolder.DateLastModified) FileInFromFolder.Copy strTarget Prossimo

'Next loop throug cartelle Per ogni oggetto FolderInFromFolder in FSO. GetFolder(strPath). Sottocartelle Per ogni FileInFromFolder in FSO. GetFolder(FolderInFromFolder). file FileInFromFolder.Copy strTarget Prossimo Prossimo Fine sub

È possibile modificare questo codice per copiare solo i file xlsm aggiungendo una condizione per controllare l'estensione del file prima di copiarlo

Per saperne di più: https://stackoverflow.com/questions/51243215/copying-files-from-subfolders-using-vba

Nota: questo è un sito Web non Microsoft. La pagina sembra fornire informazioni accurate e affidabili. Fai attenzione agli annunci pubblicitari sul sito che possono pubblicizzare prodotti frequentemente classificati come PUP (prodotti potenzialmente indesiderati). Fai ricerche approfondite su qualsiasi prodotto pubblicizzato sul sito prima di scaricarlo e installarlo.

Spero che questo aiuti ;-), fammi sapere se questo è contrario a ciò di cui hai bisogno, sarei comunque utile per rispondere a più delle tue domande.

Migliori saluti

AnnaThomas

Restituisci alla comunità. Aiuta la persona successiva con questo problema indicando se questa risposta ha risolto il tuo problema. Fare clic su Sì o No nella parte inferiore.

Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2023-05-10T10:38:05+00:00

    Ok. Funziona molto bene. grazie mille

    Leonardo

    La risposta è stata utile?

    0 commenti Nessun commento