Excel VBA è parte integrante dell'automazione di Excel e l'utilizzo e i vantaggi di VBA non possono essere pregiudicati. Se sei in una battaglia in salita cercando di consolidare più fogli e cartelle di lavoro in Excel, siamo qui per aiutarti.

Le macro menzionate in questa guida ti aiuteranno a raggiungere il compito apparentemente insormontabile in pochi secondi (o minuti, se le risorse di dati sono grandi).

Seguendo questo tutorial, creerai la tua macro VBA in Excel e unirai in modo efficiente più fogli in un unico file.

Unione di più fogli Excel in un unico file

Per questo compito, i dati vengono archiviati nei seguenti fogli:

  • Foglio1
  • Foglio2
  • Foglio3

I nomi dei fogli sopra elencati sono solo a scopo illustrativo. Questa macro VBA è generica e non dipende dai nomi dei fogli; puoi personalizzare il codice per usarlo con qualsiasi nome di foglio.

Prerequisiti per l'esecuzione del codice

Esistono alcuni prerequisiti per l'esecuzione del codice VBA elencati di seguito.

È necessario memorizzare il codice della macro in un nuovo file Excel. Salva questa cartella di lavoro con a

instagram viewer
.xlsm estensione. È possibile salvare la cartella di lavoro della macro VBA con qualsiasi nome.

Apri un nuovo file Excel; premere Alt + F11 sulla tastiera per aprire l'editor VBA di Excel. Una volta aperto l'editor, aggiungi un nuovo modulo di codice facendo clic su Inserire scheda in alto. Selezionare Modulo inserire un nuovo modulo; qui è dove inserirai il codice macro VBA indicato di seguito.

Le schede tecniche da consolidare dovrebbero trovarsi in un'altra cartella di lavoro separata. Il nome della cartella di lavoro e dei fogli può essere quello che scegli.

Non appena si esegue il codice VBA, la macro VBA scorrerà ogni foglio di lavoro disponibile nel file cartella di lavoro principale (cartella di lavoro dati) e incollare il contenuto in un foglio appena aggiunto all'interno dello stesso cartella di lavoro.

I dati consolidati saranno disponibili nella scheda denominata Consolidato.

Esecuzione del codice VBA

È ora di eseguire il codice macro appena salvato. Copia e incolla questo codice nel modulo dell'editor VBA:

Sottoconsolida_shts()
'dichiara le varie variabili utilizzate all'interno del codice e i tipi di dati vba
Dim sht As Worksheet, sht1 As Worksheet, lastrow As Integer, lastrow1 As Integer
'disabilita lo sfarfallio dello schermo e i popup di avviso durante l'esecuzione
Con Applicazione
.ScreenUpdating = Falso
.DisplayAlerts = Falso
Termina con
'memorizza il nome della cartella di lavoro principale nella variabile a macro. Sostituisci Test.xlsx con il nome della cartella di lavoro principale
Imposta wbk1 = Cartelle di lavoro ("Test.xlsx")
'attivare la cartella di lavoro prima di eseguire le funzioni su di essa
wbk1.Attiva
'esegui un ciclo vba for per verificare se esiste già un foglio Consolidated. Se esiste, il ciclo for lo cancellerà.
Per ogni sht In wbk1.Sheets
Se merda Nome = "Consolidato" Quindi sht. Eliminare
Prossima cosa
'Aggiungi un nuovo foglio per memorizzare i dati appena consolidati
Fogli di lavoro. Aggiungere. Nome = "Consolidato"
'Aggiungi alcune intestazioni a ogni singola colonna all'interno del foglio consolidato
Con Fogli("Consolidato")
.Range("a1").Valore = "DataOrdine"
.Range("b1").Valore = "Regione"
.Range("c1").Valore = "Rap"
.Range("d1").Valore = "Elemento"
.Range("e1").Valore = "Unità"
.Range("f1").Valore = "CostoUnitario"
.Range("g1").Valore = "Totale"

Termina con
'Il foglio consolidato appena creato conterrà i dati consolidati di ogni singolo foglio nella cartella di lavoro principale

For i = 1 A wbk1.Worksheets. Contare
Se Fogli (i).Nome <> "Consolidato" Allora
'Cattura l'ultima riga popolata dai fogli dati nella cartella di lavoro
lastrow = Fogli (i).Range("a1").End (xlDown).Row
'Cattura l'ultima riga popolata nel foglio consolidato
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End (xlUp).Row + 1

'Copia i dati dal foglio di origine e incollali nel foglio consolidato
Fogli (i).Intervallo("a2:g" & ultima riga).Copia Destinazione:=Fogli("Consolidato").Intervallo("a" & ultima riga1)
Finisci se
Avanti i
'Abilita le funzioni VBA di Excel per un uso futuro
Con Applicazione
.ScreenUpdating = Vero
.DisplayAlerts = Vero
Termina con

Fine Sub

Il codice VBA spiegato

Innanzitutto, dichiara tutte le variabili che stai utilizzando all'interno del codice e assegnale con i tipi di dati VBA corretti per eseguire il codice senza problemi.

Una volta dichiarate le variabili, sono necessarie alcune operazioni di pulizia di base. Questo viene fatto disabilitando lo sfarfallio dello schermo e sopprimendo gli avvisi popup. Ad esempio, quando elimini un foglio esistente utilizzando il codice VBA, un prompt in Excel chiede conferma prima di eliminare il foglio. Prompt come questo vengono soppressi per aumentare la velocità di esecuzione.

Nel passaggio successivo, è necessario definire il nome della cartella di lavoro, che contiene tutti i dati. Sostituire Test.xlsx con il nome e l'estensione del nome della cartella di lavoro. Assicurati di racchiudere il nome tra virgolette.

Attiva la cartella di lavoro principale ed elimina tutti i fogli esistenti con il nome Consolidato per eliminare i dati precedentemente memorizzati. Il codice VBA scorre ogni foglio e non appena incontra il nome del foglio Consolidato lo cancellerà. Questo viene fatto usando il Istruzione VBA IF, che verifica le condizioni logiche ed elimina il foglio non appena la condizione viene soddisfatta.

Un nuovo foglio viene aggiunto alla cartella di lavoro principale per archiviare i dati consolidati. Successivamente, a questo foglio vengono aggiunte intestazioni preformattate e standardizzate. Puoi modificare i valori dei titoli (intestazioni di colonna) aggiornando le informazioni accanto ai riferimenti di cella tra virgolette.

Per esempio: .Range(“a1”) = “Data ordine” può essere sostituito con .Range(“a1”) = “Numero Ordine”

Successivamente, un ciclo VBA FOR passa da un foglio di lavoro all'altro, copia il contenuto del foglio e incolla il contenuto nel Consolidato foglio di lavoro prima di passare al foglio successivo nella cartella di lavoro. Questo processo si ripete finché tutti i fogli non vengono copiati.

Durante questo processo, tutte le righe vengono calcolate automaticamente e incollate nel foglio Consolidato. L'ultima riga popolata viene calcolata automaticamente prima che i dati vengano incollati. La macro è dinamica e può adattarsi a righe di dati variabili all'interno di ogni foglio di lavoro.

Imparentato: Funzionalità avanzate di Microsoft Excel che devi conoscere

Una volta che i dati di tutti i fogli sono stati incollati nel foglio di consolidamento principale, la macro si sposta alla parte finale del codice. Le funzioni VBA inizialmente disabilitate vengono nuovamente abilitate per un utilizzo futuro.

Consolidamento di più fogli utilizzando la macro VBA di Excel

Excel VBA è un linguaggio di programmazione superfluo, che funziona bene con tutti i componenti di Excel. Ogni pezzo di codice è essenziale ed è importante ricordare che l'esecuzione dipende da un sistema di esecuzione riga per riga, quindi non dovresti modificare l'ordine delle righe di codice.

Per personalizzare il codice in base alle proprie esigenze, è possibile apportare le modifiche richieste ed eseguire questo codice per consolidare i dati in modo efficiente ed efficace in pochi secondi.

5 fantastiche macro di Microsoft Excel per l'ordinamento dei dati

Rendi la gestione dei dati un gioco da ragazzi con queste macro di Excel.

Leggi Avanti

CondividereTwittaE-mail
Argomenti correlati
  • Programmazione
  • Microsoft Excel
  • Macro
  • Programmazione
Circa l'autore
Gaurav Siyal (21 articoli pubblicati)

Gaurav Siyal ha due anni di esperienza di scrittura, scrivendo per una serie di società di marketing digitale e documenti sul ciclo di vita del software.

Altro da Gaurav Siyal

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti