Allora, la mia proposta e' di inserire in un file nuovo, che salverai in una directory diversa da quella che contiene i file da modificare, questa macro:
- Codice: Seleziona tutto
Sub MassEdit()
Dim myDir As String, myCFile As String, myErr As String, myDest As String
Dim fCnt As Long, myNew
'
myDest = "Foglio1" '<<< Il Foglio in cui si creera' il riepilogo
myDir = "D:\PIPPO\Archivio\" '<<< La dir dei file da consolidare (con \ finale)
myNew = 1 '<<< Il nuovo valore da inserire; se e' una stringa, usare le virgolette, es "Nuova Stringa"
'
Debug.Print
Application.EnableEvents = False
myCFile = Dir(myDir & "*.xls*")
Do
If myCFile = "" Then Exit Do
On Error Resume Next
Workbooks.Open (myDir & myCFile)
Sheets(myDest).Range("F5").Value = myNew
If ActiveWorkbook.Name <> myCFile Or _
Sheets(myDest).Range("F5").Value <> myNew Then
On Error GoTo 0
myErr = myErr & myCFile & vbCrLf
Debug.Print myCFile
If ActiveWorkbook.Name <> ThisWorkbook.Name Then
ActiveWorkbook.Close False
End If
Else
ActiveWorkbook.Close True
fCnt = fCnt + 1
End If
myCFile = Dir
Loop
Application.EnableEvents = True
If Len(myErr) > 5 Then
MsgBox ("Tot " & fCnt & " file modificati" & vbCrLf _
& "Situazioni di errore sui seguenti file:" & vbCrLf & myErr)
Else
MsgBox ("Tot " & fCnt & " file modificati")
End If
End Sub
Va inserita in un "modulo standard" del vba; le righe marcate <<< sono da personalizzare secondo i commenti.
Quando sei pronto avvia la Sub MassEdit: partendo da Excel, premi Alt-F8; scegli MassEdit dall'elenco di macro disponibili; premi Esegui.
Tutti i file contenuti nella directory dichiarata saranno aperti, modificati e salvati; uno dopo l'altro.
A conclusione del lavoro un messaggio avertira' quanti file sono stati modificati e quali eventualmente hanno manifestato un problema (che va indagato autonomamente).
Oltre che nel msgbox, l'elenco dei file con errore e' visionabile anche nella "finestra Immediata" del vba; per accedere a questa finestra, partendo da una pagina dell'editor delle macro, premere Contr-g
Ciao.