Come combinare più fogli di Excel in uno solo

Se hai cartelle di Excel con dati strutturati in modo identico su ogni foglio di lavoro, potresti essere interessato a un modo per combinare più fogli di lavoro in un unico foglio di grandi dimensioni.

Il concetto è piuttosto semplice: è sufficiente copiare i dati dal secondo e dai successivi fogli di lavoro nella prima riga vuota del primo foglio di lavoro. Excel non include uno strumento che ti permetta di farlo automaticamente, ma questo esempio è un ottimo candidato per una macro. Ricorda, tuttavia, che la struttura di ogni foglio di lavoro che stai condensando dovrebbe essere identica.

La seguente macro scorre attraverso tutti i fogli di lavoro e combina i dati in un nuovo foglio di lavoro che aggiunge all’inizio della cartella di Excel.

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Al termine della macro, il primo foglio della cartella di lavoro, denominato Combinati, contiene tutti i dati degli altri fogli di lavoro. Gli altri fogli di lavoro rimangono invariati.

Verso il termine della macro, potresti aver notato la riga seguente:

Cells(Rows.Count, 1).End(xlUp)(2)

 

La sintassi completa di ciò che stiamo usando è

Cells(Rows.Count, 1).End(xlUp).Item(2)

 

Item(2) ci fornisce la cella appena sotto la cella data da

Cells(Rows.Count, 1).End(xlUp)

 

Cells(Rows.Count, 1).End(xlUp) è uguale a Cells(Rows.Count, 1).End(xlUp).Item(1).

 

Nel caso volessi combinare assieme solo alcuni dei fogli presenti nella cartella di Excel, l’approccio dovrebbe essere leggermente diverso.

In VBA puoi fare riferimento a un foglio di lavoro in base al suo numero di item, che è il suo numero di scheda, contando da sinistra.

La macro qua sopra aggiunge un nuovo foglio di lavoro alla scheda numero 1, quindi le tue prime 3 schede si sposteranno a destra di una posizione e avranno quindi i numeri di item 2, 3 e 4.

La sezione del Loop alternativa potrebbe quindi essere qualcosa di questo genere:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

ABBONATI

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

 

Oppure potresti usare la proprietà .Index, aggiungendo semplicemente poche righe.

Al posto di:

 

For Each s In ActiveWorkbook.Sheets
'
'
'
'
'
Next

 

supponendo tu voglia combinare solo i fogli dalla 7^ scheda in poi, scriverai:

 

For Each s In ActiveWorkbook.Sheets
    If s.Index > 6 Then
'
'
'
'
    Else
    End If
Next

 

 

 

Tags: , , , , , , , , , , , , , , , , , , , , , , , , ,

Ti è stato utile?