Ciao stefanin, benvenuto nel forum.
Alla cieca sparo il seguente approccio:
-nel file dove vuoi creare il riepilogo, in Foglio1, da A2 versi il basso, metti il nome dei file da esaminare (es NomeFile1.xlsx, etc)
-salvi il file nella stessa directory dove sono localizzati i file da esaminare, chiamandolo (ad esempio) Riepilogo.xlsm
-in un "modulo standard del vba", es Modulo1, inserisci la seguente macro:
- Codice: Seleziona tutto
Sub forStef()
Dim iWs As Worksheet, oWs As Worksheet
Dim I As Long, J As Long, myN As Long
'
Set iWs = ThisWorkbook.Sheets("Foglio1") '<<< Indica il foglio con l'elenco Files
Set oWs = ThisWorkbook.Sheets("Foglio2") '<<< Indica il foglio dove si creera' il riepilogo
'
Application.EnableEvents = False
oWs.Range("A:C").ClearContents '*** Vedi Testo
oWs.Range("A1:C1") = Array("Nome File", "Nome Foglio", "Punteggio") '<<< Le intestazioni del Riepilogo
For I = 2 To iWs.Cells(Rows.Count, 1).End(xlUp).Row
Application.DisplayAlerts = False
Workbooks.Open ThisWorkbook.Path & "\" & iWs.Cells(I, 1)
Application.DisplayAlerts = True
For J = 1 To Worksheets.Count
myN = oWs.Cells(Rows.Count, 1).End(xlUp).Row + 1
oWs.Cells(myN, 1) = iWs.Cells(I, 1)
oWs.Cells(myN, 2) = ActiveSheet.Name
oWs.Cells(myN, 3) = ActiveSheet.Range("CW33").Value
Next J
ActiveWorkbook.Close False
Next I
Application.EnableEvents = True
End Sub
Operativamente, partendo da Excel col tuo file attivo:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Le righe marcate <<< sono da adattare, se non ti stanno bene le mie impostazioni
Poi, partendo dal file Riepilogo lancia la Sub forStef:
-premi Alt-F8
-seleziona forStef dall'elenco di macro disponibili
-premi Esegui
La macro aprira' uno dopo l'altro i file che hai elencato e creera' in Foglio2 un elenco di tre colonne.
L'Istruzione marcata *** azzera senza preavviso il contenuto di A:C di Foglio2, prima di creare il nuovo elenco; se questo non ti sta bene (es vuoi accodare i nuovi risultati a quanto gia' presente) allora devi rimuovere tale riga.
Se vuoi ordinare questo elenco, registrati una macro mentre, partendo da Foglio1:
-selezioni Foglio2, selezioni tutte le colonne A:C e ne fai l'ordinamento nella sequenza voluta.
Poi, prima della mia End Sub inserisci una
Call NomeMacroRegistrata
Ciao