Come eseguire una macro contemporaneamente su più cartelle di lavoro?
Gestire più cartelle di lavoro Excel spesso richiede di ripetere la stessa operazione o attività automatizzata su diversi file. Aprire manualmente ogni cartella per eseguire una macro è non solo dispendioso in termini di tempo, ma aumenta anche il rischio di errori, specialmente quando si lavora con un gran numero di file. Automatizzare questo processo è essenziale per potenziare produttività e precisione.
Grazie a VBA (Visual Basic for Applications), puoi semplificare il tuo flusso di lavoro ed eseguire automaticamente una macro su ogni cartella di lavoro contenuta in una specifica cartella, risparmiando tempo e garantendo coerenza. Questa guida ti mostra come configurare e utilizzare una soluzione VBA per applicare la macro desiderata a più file, senza doverli aprire manualmente uno alla volta.
Questo approccio è particolarmente utile nei seguenti scenari:
- Applicare formattazione o calcoli a una raccolta di report mensili
- Standardizzare i passaggi di pulizia dei dati su un insieme di esportazioni
- Aggiornare in batch modelli o aggiungere strutture a file legacy
Esegui la stessa macro su più cartelle di lavoro con codice VBA
Per eseguire in modo efficiente la stessa macro su più cartelle di lavoro senza doverle aprire manualmente una per una, puoi utilizzare uno script VBA pensato per operazioni batch. Questo approccio ti chiederà di selezionare una cartella e procederà automaticamente con l’elaborazione di ogni file Excel in essa contenuto, risultando ideale per la maggior parte delle attività comuni di automazione tramite macro.
Prima di iniziare:
- Tutte le cartelle di lavoro di destinazione sono chiuse. Lo script le aprirà ed elaborerà automaticamente, secondo necessità.
- La macro che desideri eseguire non deve richiedere alcuna interazione da parte dell’utente—ad esempio, finestre di messaggio o richieste di input—poiché l’elaborazione in batch verrebbe interrotta da tali finestre di dialogo.
- Assicurati di aver salvato il tuo lavoro, poiché l’elaborazione batch delle macro non può essere facilmente annullata e potrebbe sovrascrivere dati se non è stata codificata con la massima attenzione.
Segui questi passaggi per applicare una macro a più cartelle di lavoro:
1. Tieni premuti i tasti «ALT + F11» per aprire la finestra di Microsoft Visual Basic for Applications.
2. Nell’editor VBA aperto, fai clic su "Inserisci« > »Modulo" per creare un nuovo modulo, quindi incolla la macro fornita nella finestra vuota del modulo.
Codice VBA: esegui la stessa macro su più cartelle di lavoro contemporaneamente:
Sub LoopThroughFiles()
Dim xFd As FileDialog
Dim xFdItem As Variant
Dim xFileName As String
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
If xFd.Show = -1 Then
xFdItem = xFd.SelectedItems(1) & Application.PathSeparator
xFileName = Dir(xFdItem & "*.xls*")
Do While xFileName <> ""
With Workbooks.Open(xFdItem & xFileName)
'your code here
End With
xFileName = Dir
Loop
End If
End Sub
Note e suggerimenti importanti:
- Nel codice riportato sopra, individua la riga
With Workbooks.Open(xFdItem & xFileName). Copia e incolla il codice della macro desiderata (escludendo le righe)SubeEnd Sub) tra questa riga eEnd With. In questo modo, l’operazione verrà eseguita all’interno di ogni cartella di lavoro aperta. - Verifica attentamente la logica della tua macro e i percorsi per garantire un’elaborazione batch corretta; ti consigliamo di testarla prima su un piccolo gruppo di file, soprattutto se la macro modifica i dati.
Vedi lo screenshot che illustra dove incollare la logica della tua macro:

3. Premi il tasto "F5" nell’editor VBA per eseguire lo script: apparirà una finestra per la selezione della cartella.
4. Nella finestra «Sfoglia», seleziona la cartella che contiene tutti i file di lavoro da elaborare. Lo script analizzerà ogni file Excel presente in quella posizione ed eseguirà la tua macro.

5. Fai clic su «OK» per avviare l’operazione batch: la macro aggiunta verrà eseguita su tutte le cartelle di lavoro selezionate nella cartella scelta. L’elaborazione di gruppi più ampi potrebbe richiedere più tempo, a seconda della complessità della macro e del numero di file.
- Sicurezza macro: Se richiesto, abilita le macro oppure eseguile da una posizione attendibile.
- Destinazione Tipo di File: Il modello
*.xls*include.xlsx,.xlsme.xlsb. Modificalo se necessario. - Qualifica completamente all’interno del blocco With:Usa il punto iniziale (ad esempio,)
.Worksheets("Sheet1")) per assicurarti che le azioni vengano applicate alla cartella di lavoro aperta.
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi