Condividi:        

CONVERTIRE numerosi file XLS in XLSM

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

CONVERTIRE numerosi file XLS in XLSM

Postdi valle1975 » 04/04/18 14:07

Buongiorno, ho necessità di convertire tutte le macro precedentemente salvate in centinaia di file .XLS (creati con office 2003) nel nuovo formato XLSM , causa aggiornamento del gestionale che ora richiede per forza il nuovo formato.
Purtroppo provando semplicemente a rinominarli, non ho avuto i risultati sperati (e sognati)..
Sarebbe possibile fare questa conversione in modo che il tipo file cambi realmente (come che lo apra e cambi il tipo file da dentro Excel?).
Grazie per il vs. aiuto.
Valerio
---------------------------------
Windows 10 Professional + MS Office 2016 STD Ita
valle1975
Utente Senior
 
Post: 213
Iscritto il: 27/09/10 16:33

Sponsor
 

CONVERTIRE numerosi file XLS in XLSM

Postdi FRIEDRICH » 04/04/18 16:32

Ciao Valerio,

prova ad eseguire la conversione con il file che puoi scaricare al seguente indirizzo (ovviamente fai prima una copia dei tuoi file):

https://filedb.experts-exchange.com/incoming/2011/10_w42/512408/loopAndConvert.xlsm

Trovi le istruzioni ed il codice al seguente link, in inglese:
https://www.experts-exchange.com/articl ... ption.html
Avatar utente
FRIEDRICH
Utente Junior
 
Post: 32
Iscritto il: 09/07/17 17:14

Re: CONVERTIRE numerosi file XLS in XLSM

Postdi patel » 04/04/18 16:51

prova questa
Codice: Seleziona tutto
Sub AprifileSaveas()
Dim wbOpen As Workbook
Dim wbNew As Workbook
strPath = "C:\prova\" ' <<<< da modificare i 2 percorsi
newPath = "C:\DATI\"
Dim Filename As String
Filename = Dir(strPath & "*.xls")
Do While Filename <> ""
    Set wbOpen = Workbooks.Open(strPath & Filename)
    ActiveWorkbook.SaveAs Filename:= _
            newPath & Filename & "m", FileFormat:= _
            xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            ActiveWorkbook.Close
    Filename = Dir
Loop
End Sub
patel
Utente Senior
 
Post: 309
Iscritto il: 24/04/12 16:03

Re: CONVERTIRE numerosi file XLS in XLSM

Postdi Anthony47 » 04/04/18 20:22

Mi permetto di suggerire questa variante alla macro proposta da patel (vedi sopra):
Codice: Seleziona tutto
Sub FilConv()
Dim myPath As String, oldX As String, myF As String, mySplit
Dim newF As Integer, newX As String, newFN As String, newPath As String
'
myPath = "C:\PercorsoDiOrigine\"        '<<< La directory coi file da convertire
newPath = "C:\PercorsoDiDestinazione\"  '<<< La directory dei file convertiti
oldX = ".xls"
'
If Right(myPath, 1) <> "\" Then myPath = myPath & "\"
If Right(newPath, 1) <> "\" Then newPath = newPath & "\"
Application.EnableEvents = False
Application.ScreenUpdating = False
myF = Dir(myPath & "*" & oldX)
Do While myF <> ""
    If UCase(Right(myF, Len(oldX))) = UCase(oldX) Then
        Workbooks.Open myPath & myF, 0
        If ActiveWorkbook.HasVBProject Then
            newX = ".xlsm": newF = 52       'Con macro
        Else
            newX = ".xlsx": newF = 51       'Senza macro
        End If
        newFN = Left(myF, Len(myF) - Len(oldX)) & newX
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:= _
          newPath & newFN, FileFormat:=newF, CreateBackup:=False
        ActiveWorkbook.Close False
        Application.DisplayAlerts = True
        ThisWorkbook.Sheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = myF
    Else
        ThisWorkbook.Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = myF
    End If
myF = Dir
Loop
Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox ("Conversione completata...")
End Sub

Parti da un nuovo file contenenti almeno Foglio1 e Foglio2, e inserisci la macro in un Modulo Standard del vba.
Personalizza le istruzioni marcate <<< come da commenti.
Quando sei pronto esegui la Sub FilConv.

Essa aprira' uno dopo l'altro i file ".xls" presenti nella directory che hai dichiarato e li convertira' in formato .xlsm (se contengono macro) oppure .xlsx (senza macro), salvandoli nella directory che hai indicato in newPath.

Durante la conversione i file convertiti saranno elencati (col vecchio nome) in Foglio1; quelli non convertiti in Foglio2.
Ad esempio non saranno convertiti file gia' in formato xlsx oppure xlsm. NB: questi file rimarranno nella directory di origine, non saranno spostati in CONVERTITI.
File non in formato ".xls" non saranno presi in considerazione (es .xlt, o .csv)

Dopo la verifica i file originali potrebbero essere cancellati (se risultano "convertiti"); oppure (meglio...) te li archivi su un cd o su un altro archivio di salvataggio.

Rispetto alla macro di patel, la differenza principale e' che i file privi di macro saranno convertiti in .xlsx; solo quelli conteneti macro saranno convertiti in .xlsm. Inoltre viene creato il log dei file convertiti o non convertiti, come detto prima.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19223
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: CONVERTIRE numerosi file XLS in XLSM

Postdi valle1975 » 09/04/18 21:26

Grazie infinite!!
Valerio
---------------------------------
Windows 10 Professional + MS Office 2016 STD Ita
valle1975
Utente Senior
 
Post: 213
Iscritto il: 27/09/10 16:33


Torna a Applicazioni Office Windows


Topic correlati a "CONVERTIRE numerosi file XLS in XLSM":


Chi c’è in linea

Visitano il forum: Nessuno e 59 ospiti