Salve
Premessa: Prima di far girare la macro che trovi qui sotto, fai un salvataggio dei dati oggetto della elaborazione.
Con le seguenti considerazioni:
Tutti i files si trovano all'interno di una sola cartella, tutti i nomi dei file sono espressi nella forma 1 1 12.xls
Esempio Cartella Prova nel disco C pertanto C:\Prova
all'interno della Cartella "Prova", crea tante sottocartelle per ogni mese dell'anno con questo Formato: Gennaio12 Febbraio12 ecc.
Apri Excel, vai in ambiente visual Basic raggiungibile premendo contemporaneamente Alt+F11
Menù Inserisci>Modulo
nella pagina bianca che si apre incolla questo codice:
Sub ElencoFile()
Set FSO = CreateObject("scripting.filesystemobject")
ChDrive "C"
Mydir = "c:\prova\"
ChDir Mydir
f = Dir(Mydir)
If f = "" Then Exit Sub
Do While Len(f) > 0
dd = Left(f, InStr(1, f, " ") - 1)
mm = Mid(f, InStr(1, f, " ") + 1, (InStr(InStr(1, f, " ") + 1, f, " ") + 1 - InStr(1, f, " ")) - 2)
aa = Mid(f, InStr(1, f, ".") - 2, 2)
If Len(dd) < 2 Then dd = "0" & dd
If Len(mm) = 1 Then
mm = "0" & mm
Else
mm = Mid(f, InStr(1, f, " ") + 1, 2)
End If
Select Case mm
Case 1
mmt = "Gennaio"
Case 2
mmt = "Febbraio"
Case 3
mmt = "Marzo"
Case 4
mmt = "Aprile"
Case 5
mmt = "Maggio"
Case 6
mmt = "Giugno"
Case 7
mmt = "Luglio"
Case 8
mmt = "Agosto"
Case 9
mmt = "Settembre"
Case 10
mmt = "Ottobre"
Case 11
mmt = "Novembre"
Case 12
mmt = "Dicembre"
End Select
Newpath = "c:\prova\" & mmt & aa & "\"
oldname = f
newname = dd & "-" & mm & "-" & aa & ".xls"
Name Mydir & oldname As Mydir & newname
FSO.MoveFile Source:=Mydir & newname, Destination:=Newpath
f = Dir
Loop
End Sub
Attiva il riferimento necessario su: Menù strumenti>Riferimenti metti la spunta su " Microsoft scripting Runtine"
Esegui la macro F5
finita l'esecuzione Salva e chiudi e verifica cosa è successo nella cartella Prova
saluti
Giap