Sto usando questa macro (del forum in un vecchio post) per copiare i dati contenuti in più sheets nell'unico denominato "riepilogo" di un unico file.
- Codice: Seleziona tutto
Sub Consolida()
Dim myArea As Range, I As Long, LastR As Long, NextR As Long, CopyCol As String
'
CopyCol = "b:h" '<<Le colonne da copiare, a partire da b
'
Range(CopyCol).Resize(1).Select
For I = 1 To Worksheets.Count
If UCase(Left(Sheets(I).Name, 4)) <> "RIEP" Then
Sheets(I).Select
LastR = FindLast(ActiveSheet, CopyCol)
Set myArea = Application.Intersect(Range(CopyCol), Range("2:" & LastR))
NextR = FindLast(Sheets("Riepilogo"), CopyCol) + 1
myArea.Copy Destination:=Sheets("Riepilogo").Cells(NextR, "A")
End If
Next I
Range(CopyCol).Resize(1).Copy Destination:=Sheets("Riepilogo").Range("a1")
Sheets("Riepilogo").Select
Range("A16").Select
Selection.EntireColumn.Insert
Selection.EntireColumn.Insert
Selection.EntireColumn.Insert
Selection.EntireColumn.Insert
Selection.EntireColumn.Insert
End Sub
Function FindLast(ByRef mySh As Worksheet, ByVal myCols As String) As Long
Dim Last
With mySh.Range(myCols)
Set Last = .Find(What:="*", After:=.Cells(1, 1), SearchDirection:=xlPrevious, SearchOrder:=xlByRows, LookIn:=xlFormulas)
End With
If Last Is Nothing Then FindLast = 1 Else FindLast = Last.Row
End Function
Ora necessiterei di alcune implementazioni (quello che facevo con un file, ottenerlo da più files):
Data la cartella "IF"
contenente un numero variabile di files in excel "A" "B" "C" ecc. (con all'interno più sheets) e quello "rapporti_00" che contiene il foglio "riepilogo"
vorrei copiare i dati di ogni file sull'unico sheet "riepilogo" del file "rapporti_00".
Spero di aver spiegato il tutto e vi ringrazio in anticipo per l'aiuto.