vorrei chiedere il vostro aiuto per finire un lavoro che sto facendo.
Sono arrivato al punto in cui devo mettere insieme tutti i dati raccolti in diversi files excel (tutti con stessa formattazione). Questi dati si trovano nella Tabella1 del Foglio1 di ogni file.
Dovrei creare un file in cui nella Tabella1 del Foglio1 vengano inseriti tutti i dati dei diversi files, in modo tale da poter poi elaborare i dati raccolti attraverso tabelle pivot.
E' importante sottolineare che la raccolta dati continuerà in futuro, quindi avrò sempre nuovi dati da aggiungere al file.
Per ora con la seguente macro (postata tempo fa da Flash), ho fatto in modo che il file copiasse nel Foglio1 tutti i dati contenuti negli altri file contenuti nella stessa cartella. Una volta copiati i dati, automaticamente i files vengono spostati in una cartella "ArchivioInseriti".
- Codice: Seleziona tutto
Public perc As String, Ws1 As String, f As String, WB1 As String
Sub GiovaniXls()
Application.ScreenUpdating = False
Application.Calculation = xlManual
perc = ThisWorkbook.Path
If Dir(perc & "\ArchivioInseriti", vbDirectory) = "" Then
MkDir (perc & "\ArchivioInseriti")
End If
WB1 = ThisWorkbook.Name
Ws1 = "GIOVANI"
Worksheets(Ws1).Select
Range("A1").Select
Giovani Direct:=perc, Estens:="*.xls*", Inicell:=ActiveCell
Range("A1").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sub Giovani(Direct As String, Estens As String, Inicell As Range)
Dim i As Integer, f As String
ChDir Direct
f = Dir(Estens)
If f = "" Then Exit Sub
While f <> ""
If f <> ThisWorkbook.Name Then
Application.Workbooks.Open perc & "\" & f
URF = Workbooks(f).Worksheets("GIOVANI").Range("A" & Rows.Count).End(xlUp).Row
URR = Workbooks(WB1).Worksheets(Ws1).Range("A" & Rows.Count).End(xlUp).Row
Workbooks(f).ActiveSheet.Rows("2:" & URF).Copy Destination:=Workbooks(WB1).Worksheets(Ws1).Range("A" & URR + 1)
Workbooks(f).Close savechanges:=False
FileCopy perc & "\" & f, perc & "\ArchivioInseriti\" & f
Kill perc & "\" & f
End If
f = Dir
Wend
End Sub
Tuttavia, il range che viene copiato non è limitato alla tabella1, ma viene copiato l'intero foglio1.
Se possibile, vorrei anche inserire da qualche parte i nomi dei files copiati, così da poter effettuare dei controlli.
Spero che qualcuno possa aiutarmi.
Grazie mille a tutti in anticipo!