020. Estrarre dati da file diversi senza aprirli ad uno ad uno

Download PDF

Domanda:

Ho una cartella contenente diversi file excel che per comodità chiamerò a.xls, b.xls, c.xls, ecc..
Ognuno di questi file ha nel foglio 1 una tabella (identica per tutti i file) con due colonne di dati (a e b)
La mia esigenza è quella di trovare una formula/macro che sommi su un altro foglio (totale.xls) automaticamente tutte le singole celle delle colonne a e b.
Non vorrei aprire i singoli file per fare le somme ma vorrei poter aprire il solo file totale.xls

Risposta:

Innanzitutto facciamo un pò d’ordine nei report da gestire creando una cartella “ARCHIVIO REPORT”
all’interno della quale andremo a creare delle sottocartelle per ciascun Anno_Mese.
All’interno di queste sottocartelle salveremo i report.

La macro lanciata tramite il bottone “Aggiorna” esegue le seguenti operazioni:


– apre la finestra di dialogo per selezionare la cartella dove sono stati archiviati i report
(msoFileDialogFolderPicker) e determina con essa il valore della variabile “Cartella”

– prende in considerazione tutti i file che vi trova , ne estrae il percorso (f1.Path) e lo utilizza per aprirli

Dim fs, f, f1, s, sf
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(Cartella)
Set sf = f.Files

For Each f1 In sf
   ActiveWorkbook.FollowHyperlink Address:=f1.Path
Next

– per ciascun file aperto, copia i valori del foglio1 e li incolla nel foglio 3 del file “Totale”

– normalizza i dati incollati uno sotto l’altro nel file “Totale”

– inserisce le somme nel foglio “Riepilogo”

'Dalla riga 9 alla 39 inserisco i totali per giorno 
For i = 9 To 39         
    Sheet1.Cells(i, 4) = _
    Application.WorksheetFunction.SumIf(Sheet3.Columns(1), Sheet1.Cells(i, 2), Sheet3.Columns(3))     
    Sheet1.Cells(i, 5) = _
    Application.WorksheetFunction.SumIf(Sheet3.Columns(1), Sheet1.Cells(i, 2), Sheet3.Columns(4))
Next i

Ho commentato il codice della macro per spiegare passo passo cosa fa.

Se volete per esercizio creare ex novo il file, assicuratevi di inserire le librerie presenti nel mio file
La procedura per vedere le librerie è la seguente:
– “ALT+F10” per aprire l’editor
– Menù Strumenti
– Referenze
Per aggiungere una nuova libreria basta mettere il segno di spunta a sinistra del suo nome.

Salvate lo zip sul desktop, decoprimetelo ed aprite il file “Totale Marzo 2013”

ARCHIVIO REPORT

Riccardo Vincenti

 

 

The following two tabs change content below.