Estrazione file excel senza aprirli
Hai un problema con Excel? 
Estrazione file excel senza aprirli.
di carlopepe data: 10/02/2016 14:55:26
Buona giornata a tutti.
Sono nuovo e volevo porvi questo problema.
In una cartella sono salvati numerosi file nominati ognuno in modo diverso come anche il rispettivo foglio contenente i dati. Dei fogli l'unica costante è il numero di colonne, mentre quella variabile sono le righe.
C'è la possibilità di estrarre il contenuto di tutti questi file, senza aprirli, in un nuovo file e unico foglio?
Chiedo scusa se sono stato poco chiaro o sbagliato qualche regola.
Grazie in anticipo e rinnovo i saluti.
Forse sono stato poco chiaro. Allego file. Dunque i file nominati CARICAMENTO......XLS sono salvati in una cartella, quello che vorrei ottenere è il file RISULTATO. Grazie ancora.
di carlopepe data: 10/02/2016 16:03:18
Forse sono stato poco chiaro. Allego file. Dunque i file nominati CARICAMENTO......XLS sono salvati in una cartella, quello che vorrei ottenere è il file RISULTATO. Grazie ancora.
di patel data: 10/02/2016 17:00:05
prova questa macro
Sub OpenMultipleFilesCopy() ' incolla nello stesso foglio i file selezionati uno sotto l'altro
Dim currentWS As Worksheet, fn, f As Long, col As Long
Set currentWS = ActiveWorkbook.ActiveSheet
fn = Application.GetOpenFilename("Excel-files,*.xls", 1, "Select One Or More Files To Open", , True)
If TypeName(fn) = "Boolean" Then Exit Sub
Application.ScreenUpdating = False
For f = 1 To UBound(fn)
LR = currentWS.Range("A" & Rows.Count).End(xlUp).Row + 1
With Workbooks.Open(fn(f))
.ActiveSheet.UsedRange.Copy currentWS.Cells(LR, 1)
.Close 0
End With
Next f
Application.ScreenUpdating = True
End Sub |
di carlopepe data: 11/02/2016 10:03:10
Grandioso è quello che mi serve. Funziona alla perfezione in quanto posso decidere i file da importare nel riepilogo. Va benissimo così, ma vsito che mi trovo, è possibile far scrivere in un ulteriore colonna e per ogni riga dati, il nome del file di appartenenza? Ringrazio per l'aiuto.
di patel data: 11/02/2016 13:16:37
il nome nella prima colonna
Sub OpenMultipleFilesCopy() ' incolla nello stesso foglio i file selezionati uno sotto l'altro
Dim currentWS As Worksheet, fn, f As Long, col As Long
Set currentWS = ActiveWorkbook.ActiveSheet
fn = Application.GetOpenFilename("Excel-files,*.xls", 1, "Select One Or More Files To Open", , True)
If TypeName(fn) = "Boolean" Then Exit Sub
Application.ScreenUpdating = False
For f = 1 To UBound(fn)
LR = currentWS.Range("A" & Rows.Count).End(xlUp).Row + 1
With Workbooks.Open(fn(f))
currentWS.Cells(LR, 1) = fn(f) ' scrive il nome
.ActiveSheet.UsedRange.Copy currentWS.Cells(LR, 2)
.Close 0
End With
Next f
Application.ScreenUpdating = True
End Sub |
di carlopepe data: 11/02/2016 16:15:50
Ciao. Purtroppo non funziona. Spiego, se apro un singolo file è tutto ok , mentre più file mi da il percorso dei due, però estrae solo il primo omettendo una riga. Quello che chiedo, sempre nel limite del possibile,
1 estrae percorso del primo file ed il suo contenuto.
2 a seguire percorso del secondo e suo contenuto
3 e così via.
di carlopepe data: 11/02/2016 16:19:53
Per essere più chiaro. Nel primo sviluppo che funziona alla perfezione, aggiungere all'intestazione di ogni file aperto il percorso dello stesso.
di patel data: 11/02/2016 17:58:05
prova così
Sub OpenMultipleFilesCopy() ' incolla nello stesso foglio i file selezionati uno sotto l'altro
Dim currentWS As Worksheet, fn, f As Long, col As Long
Set currentWS = ActiveWorkbook.ActiveSheet
fn = Application.GetOpenFilename("Excel-files,*.xls", 1, "Select One Or More Files To Open", , True)
If TypeName(fn) = "Boolean" Then Exit Sub
Application.ScreenUpdating = False
For f = 1 To UBound(fn)
LR = currentWS.Range("A" & Rows.Count).End(xlUp).Row + 1
With Workbooks.Open(fn(f))
currentWS.Cells(LR, 1) = fn(f) ' scrive il nome
.ActiveSheet.UsedRange.Copy currentWS.Cells(LR+1, 1)
.Close 0
End With
Next f
Application.ScreenUpdating = True
End Sub |
di carlopepe data: 12/02/2016 09:59:58
Grande grande grande. Perfettissimo, ciò che mi serviva. Grazzieee
Vuoi Approfondire?