Ciao Yago,
questa routine gestisce tutti i files che vuoi. Devi metterli tutti in una cartella e definirne un'altra per spostare quelli lavorato
R
Public Fso As New FileSystemObject
Dim fromPath 'Cartella dove trovo i Files da lavorare
Dim toPath 'Cartella dove sposto i files lavorati
Dim NomeFile 'File in uso nella routine
Dim codErr As Integer 'Gestione codici errore
Dim txtErr As String 'Testo errore
'*****************************************
' Reset Variabili
'*****************************************
codErr = 0
txtErr = ""
Set Fso = Nothing
Set fromPath = Nothing
Set toPath = Nothing
'*****************************************
'Cerca tutti i file nella cartella
Set Fso = CreateObject("Scripting.FileSystemObject")
Set FromPath = "C:\........\" 'Cartella che contiene i files
Set toPath = "C:\........\" 'Cartella dove sposti i files dopo averli lavorati
rC = 8
For Each NomeFile In FromPath.Files
'Questo sistema lavora i files senza aprirli
Set xlApp = CreateObject("Excel.Application")
Set wP = xlApp.Workbooks.Open(NomeFile)
Set sP = wP.Sheets("Dati")
Set P = wP.Sheets("Dati").Cells
'Qui fai quello che devi su ogni file
'Gestisci gli errori con la variabile codErr (integer)
' Quando hai finito, se è andato tutto bene sposti il file
If codErr = 0 Then
wP.Close SaveChanges:=False/True
Set P = Nothing
Set sP = Nothing
Set wP = Nothing
Fso.MoveFile fromPath & "\" & NomeFile.Name, toPath & "\" & NomeFile.Name
Set xlApp = Nothing
End If
'Chiusura variabili ' DA VERIFICARE
If codErr <> 0 Then GoTo gestErrore
'
Next
Set wP = Nothing
Set P = Nothing
Set Fso = Nothing
Set fromPath = Nothing
Set toPath = Nothing
MsgBox "Importazione completa", vbInformation, "Gestione Parco"
Exit Sub
'**************************************
' Gestione Errori
'**************************************
gestErrore:
On Error Resume Next
wP.Close SaveChanges:=False
Set wP = Nothing
Set P = Nothing
Set Fso = Nothing
Set fromPath = Nothing
Set toPath = Nothing
'Tipo Errore
If codErr = 1 Then txtErr = "Testo 1"
If codErr = 2 Then txtErr = Testo 2"
If codErr = 3 Then txtErr = ""
If codErr = 4 Then txtErr = ""
If codErr = 5 Then txtErr = ""
'If codErr = 6 Then txtErr = ""
'If codErr = 7 Then txtErr = ""
'If codErr = 8 Then txtErr = ""
'If codErr = 9 Then txtErr = ""
MsgBox txtErr, vbCritical, "ERRORE"
codErr = 0
End Sub