premetto di essere una neofita di macro ma grazie a voi ho risolto molte problematiche lavorative.
Ora dovrei unire più file excel presenti in medesima cartella su server aziendale, con medesima struttura, in un riepilogo.
Ho trovato questa magnifica macro creata da Flash30005e modificata secondo la richiesta degli utenti da Anthony47 ma non corrisponde ancora completamente alle mie esigenze.
Macro:
- Codice: Seleziona tutto
Public perc As String, Ws1 As String, f As String, WB1 As String
Sub ElencoFileXls()
Application.ScreenUpdating = False
Application.Calculation = xlManual
perc = ThisWorkbook.Path
If Dir(perc & "\ArchivioXls", vbDirectory) = "" Then
MkDir (perc & "\ArchivioXls")
End If
WB1 = ThisWorkbook.Name
Ws1 = "Foglio1"
Worksheets(Ws1).Select
Range("A1").Select
ElencoFile Direct:=perc, Estens:="*.xls*", Inicell:=ActiveCell
Columns("A:AZ").EntireColumn.AutoFit
Range("A1").Select
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Sub ElencoFile(Direct As String, Estens As String, Inicell As Range)
Dim i As Integer, f As String
f = Dir(Direct & "\" & Estens)
If f = "" Then Exit Sub
While f <> ""
If f <> ThisWorkbook.Name Then
Application.Workbooks.Open perc & "\" & f
URF = Workbooks(f).Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
URR = Workbooks(WB1).Worksheets(Ws1).Range("A" & Rows.Count).End(xlUp).Row
Workbooks(f).ActiveSheet.Rows("7:" & URF).Copy Destination:=Workbooks(WB1).Worksheets(Ws1).Range("A" & URR + 1)
Workbooks(f).Close savechanges:=False
FileCopy perc & "\" & f, perc & "\ArchivioXls\" & f
Kill perc & "\" & f
End If
f = Dir
Wend
End Sub
Confermo di avere la necessità che l'unione avvenga partendo dalla riga 7 dei file da copiare.
Avrei però necessità che:
- - Le colonne copiate siano limitate dalla colonna "A" alla colonna "V"
- Avrei la necessità che la macro sovrascriva la precedente eseguita ricopiando nuovamente tutte le righe dai file di origine (i colleghi aggiorneranno le righe del file a loro appartenente ed io una volta al giorno dovrò aggiornare il mio file "Riepilogo" con le righe eventualmente aggiunte dai colleghi o le modifiche apportate sulle singole celle). In questa macro invece i file lavorati vengono parcheggiati in una cartella sottostante chiamata "Archivioxls"
- in caso vi siano presenti filtri nei singoli file da lavorare, avrei bisogno che la macro raccolga comunque tutte le righe scritte
- che tra un file e l'altro nel riepilogo non venga inserita la riga vuota
Spero che qualcuno possa aiutarmi.
Grazie in anticipo