Crea un file nuovo e al suo interno inseriscigli in Modulo1 del vba questo codice:
- Codice: Seleziona tutto
Sub RIEP()
Dim myDir As String, myCFile As String, myLast As Long, myDest As String
'
myDest = "Foglio1" '<<< Il Foglio in cui si creera' il riepilogo
myDir = "D:\PIPPO\Archivio\" '<<< La dir dei file da consolidare (con \ finale)
'
Application.EnableEvents = False
myCFile = Dir(myDir & "*.xls*")
Do
If myCFile = "" Then Exit Do
On Error Resume Next
myLast = getLast
Workbooks.Open (myDir & myCFile)
Sheets(1).Select
myused = getLast
If myLast = 0 Then
ActiveSheet.Range("A1:J" & myused).Copy ThisWorkbook.Sheets(myDest).Cells(myLast + 1, 1)
Else
ActiveSheet.Range("A2:J" & myused).Copy ThisWorkbook.Sheets(myDest).Cells(myLast + 1, 1)
End If
ActiveWorkbook.Close False
myCFile = Dir
Loop
Application.EnableEvents = True
MsgBox ("Completato...")
End Sub
Function getLast() As Long
Dim LastR As Long
On Error Resume Next
LastR = Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
On Error GoTo 0
getLast = LastR
End Function
Operativamente, appena creato il nuovo file:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Personalizza le righe marcate <<< come da commenti.
Poi torna su Excel e, una volta che i file da consolidare sono tutti stati posizionati nella directory dichiarata, lancia la macro RIEP:
-premi Alt-F8
-seleziona RIEP dall'elenco di macro disponibili
-premi Esegui
A questo punto i vari file dovrebbero aprirsi in sequenza e il contenuto delle colonen A:J viene copiato nel foglio dichiarato, accodandoli uno dopo l'altro.
Prova e fai sapere