Ad esempio questa macro:
- Codice: Seleziona tutto
Sub Consolida()
Dim Dest As String, I As Long, myRan As String
'
Dest = "MASTER" '<<< Il foglio su cui si consolida
'
For I = 1 To Worksheets.Count
If UCase(Sheets(I).Name) <> UCase(Dest) Then
Sheets(I).Select
'Copia l'intervallo usato di ogni foglio:
myRan = "A:I" '<<< Le colonne dei dati importati
LastR = Range(myRan).Find(What:="*", After:=Range(myRan).Cells(1, 1), _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Application.Intersect(Range(myRan), Range("2:" & LastR)).Copy
'Accodalo al contenuto di Master:
LastR = Sheets(Dest).Range(myRan).Find(What:="*", After:=Range(myRan).Cells(1, 1), _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Sheets(Dest).Cells(LastR + 1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
Next I
Sheets(Dest).Select
MsgBox ("Completato...")
End Sub
Va messo in un "Modulo standard" del vba; la riga marcata <<< va personalizzata come da commento.
Il foglio di destinazione ("Master", nel mio codice) deve gia' esistere e deve gia' avere un contenuto; ad esempio almeno le intestazioni di una colonna.
Poi all'occorrenza esegui la Sub Consolida, che copiera' su Master (o sul foglio che hai indicato) il contenuto valido di A:I di tutti gli altri fogli, accodandolo a quanto gia' presente.
Prova e fai sapere...