Ciao,
per allegare un file:
LEGGI QUITu che conoscenze hai del VBA?
Hai già fatto una ricerca nel forum?
A memoria l'argomento è stato trattato più volte
Anche in rete, cercando con Google, troverai degli esempi validi sui quali lavorare per produrre quello che ti occorre.
Per i tuoi punti "1" e "3" dovresti trovare del materiale utile
Sul punto "2" ci ragionerei per capire perchè hai scelto questa strada e non quella di rilanciare il codice (quello che si produrrà) e controllare che i file siano stati già copiati o ... semplicemente se i file non sono tanti e le righe non di numero eccessivo RIELABORARE TUTTI I FILE ... ma ragioniamoci su insieme
In rete ho trovato questo codice
- Codice: Seleziona tutto
Sub MergeSelectedWorkbooks()
Dim Ws_Out As Worksheet
Dim Percorso As String
Dim File_Selezionati() As Variant
Dim Num_Riga As Long
Dim FileName As String
Dim NFile As Long
Dim WB As Workbook
Dim Intervallo_In As Range
Dim Intervallo_Out As Range
Set Ws_Out = ActiveWorkbook.Sheets(1)
Percorso = "D:\Temp"
ChDrive Percorso
ChDir Percorso
File_Selezionati = Application.GetOpenFilename( _
filefilter:="Excel Files (*.xl*), *.xl*", MultiSelect:=True)
Num_Riga = 1
For NFile = LBound(File_Selezionati) To UBound(File_Selezionati)
FileName = File_Selezionati(NFile)
Set WB = Workbooks.Open(FileName)
Ws_Out.Range("A" & Num_Riga).Value = FileName
Set Intervallo_In = WB.Worksheets(1).Range("A1:Z100") ' <<===== Intervallo dati del "PRIMO FOGLIO" da copiare
Set Intervallo_Out = Ws_Out.Range("B" & Num_Riga)
Set Intervallo_Out = Intervallo_Out.Resize(Intervallo_In.Rows.Count, _
Intervallo_In.Columns.Count)
Intervallo_Out.Value = Intervallo_In.Value
Num_Riga = Num_Riga + Intervallo_Out.Rows.Count
WB.Close savechanges:=False
Next NFile
Ws_Out.Columns.AutoFit
End Sub
Vengono copiati i dati dei file excel selezionati ma solo quelli del PRIMO FOGLIO dell'intervallo "A1:Z100"
Si può agire sul codice per adattarlo alle tue esigenze