Conversione file Excel da 2003 a 2013

Anonimo
2017-07-31T07:51:37+00:00

Buon giorno a tutti,

devo iniziare a utilizzare Excel 2013, ma per lavoro utilizzo un file Excel 2003 con moltissime macro (non fatte da me): ho provato ad utilizzarlo sia in modalità compatibile sia convertendolo alla versione attuale, ma si blocca e non funziona: qualcuno sarebbe cosi gentile da riuscire a trasformarlo.

Allego il file:

http://www.filedropper.com/ordineconanalisiv22vuoto

se pigi il tasto Analisi Totale in alto a destra, con Excel 2003 l'analisi dura 10/11 minuti, con Excel 2013 si blocca e chiude e riapre il file, o sta per ore senza concludersi mai.

Grazie in anticipo, è importante perchè ci lavoro.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

35 risposte

Ordina per: Più utili
  1. Anonimo
    2017-08-01T13:30:50+00:00

    Ciao Emilio,

    Ciao Norman, grazie per l'aiuto. Il file che mi hai mandato quando lo apro mi da quest'errore:

    https://www.dropbox.com/s/3bd0

    Colpa mia, immettendo centinaia di gestori di errori, ne ho inserito involontariamente due in una delle procedure! Ho ora aggiornato e verificato il file che ho caricato.

    Ma tu hai fatto l'ANALISI TOTALE?

    Quando ho fatto Verifica Documento gli errori li da in Controllo Documento e Verifica Compatibilità: perchè non inizi da li a vedere di correggere gli errori?

    Certo!!

    Aprendo il file, ottengo il messagio

           

    Poi, dopo aver premuto il pulsante ANALISI TOTALE, vedo il seguente messagio:

                   

    Pertanto, riscarica il file e prova ad individuare l'errore.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2017-08-01T10:43:06+00:00

    Ciao Norman, grazie per l'aiuto. Il file che mi hai mandato quando lo apro mi da quest'errore:

    https://www.dropbox.com/s/3bd03uum5skq6f5/Screenshot%202017-08-01%2012.41.08.png?dl=0

    Ma tu hai fatto l'ANALISI TOTALE?

    Quando ho fatto Verifica Documento gli errori li da in Controllo Documento e Verifica Compatibilità: perchè non inizi da li a vedere di correggere gli errori?

    Grazie e saluti.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2017-08-01T09:13:38+00:00

    Ciao Emilio,

    Buon giorno Norman: scaricato il componente aggiuntivo, ma non è cambiato nulla;

    Hai anche provato, come suggerito, a ricreare il file problematico? L'addin gestisce soltanto certi aspetti del codice e non il file excel o i suoi fogli.

    a me dei 10/11 minuti non importa nulla, in quanto quella e una cosa che faccio 2 volte al mese:  

    OK,  ma il fatto che la procedura richiede tanto tempo è dovuto, tra l'altro, all'infficienza del codice. Tale inefficienza può anche essere responsabile per problemi sporadici e sottili e potrebbe spiegare la tua attuale situazione ...

    a me interessa che funzioni senza errori: non è che ci daresti uno sguardo giusto per farlo fare le stesse cose che faceva con Excel 2003. 

    Si deve capire, che come sia stato scritto il codice, i nomi di diversi file di interesse, 

    incluso il file problematico stesso, sono fissati nel codice (hard coded). A questo proposito, considera i seguenti esempi dal tuo codice:

    Di conseguenza, non si può semplicemente  convertire i file nel formato xlsm (o xlsb) dettato da Excel 2013, a meno che non si modifichi il codice che attualmente riconosce solo il formato xls di Excel 2003. 

    Quindi, in attesa di tali modifiche, sarebbe necessario assicurarti che tutti i file di interesse siano in formato xls, che siano denominati precisamente nel modo previsto dal codice, e che si trovino nei precisamente i percorsi stipulati dal codice.

    Provando il codice esclusivamente con file del tipo xls, io non riesco a replicare i tuoi problemi e senza una indicazione dell'errore specifica e la riga di codice incriminata, è difficile aiutarti ulteriormente

    Pertanto, in un tentaivo ad individuare il codice incriminato, ho inserito  un gestore di errore  nel codice di ogni procedura - 178 gestori di errori in totale. Ad esempio, nella procedura Cancella nel modulo di codice del foglio Visite Giornaliere,  ho aggiunto il codice evidenziato in grassetto:

    '=========>>

    Sub Cancella()

      On Error GoTo ErrHandler

    Sheets("Visite Giornaliere").Range("A2:C" & Rows.Count).ClearContents

    Sheets("Visite Giornaliere").Range("D20").Activate

      On Error GoTo 0

    Exit Sub

    ErrHandler:

    Call MsgBox( _

    Prompt:="Error " & Err.Number _

    & " (" & Err.Description & ") in procedure Cancella", _

    Buttons:=vbCritical, _

    Title:="ERROR")

    End Sub

    '<<=========

    Ho aggiunto codice analogo per ogni routine del file.

    Quindi, scarica il file così modificato

    Ordine Con Analisi_V22 Vuoto.xls

    e riprova questo file. In caso di problemi, fammi vedere uno screenshot del messaggio di errore.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2017-08-01T06:23:50+00:00

    Buon giorno Norman: scaricato il componente aggiuntivo, ma non è cambiato nulla; a me dei 10/11 minuti non importa nulla, in quanto quella e una cosa che faccio 2 volte al mese:  a me interessa che funzioni senza errori: non è che ci daresti uno sguardo giusto per farlo fare le stesse cose che faceva con Excel 2003. Grazie e saluti.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2017-07-31T21:53:52+00:00

    Ciao Emilio,

    devo iniziare a utilizzare Excel 2013, ma per lavoro utilizzo un file Excel 2003 con moltissime macro (non fatte da me): ho provato ad utilizzarlo sia in modalità compatibile sia convertendolo alla versione attuale, ma si blocca e non funziona: qualcuno sarebbe cosi gentile da riuscire a trasformarlo. 

    Allego il file:

    http://www.filedropper.com/ordineconanalisiv22vuoto

    se pigi il tasto Analisi Totale in alto a destra, con Excel 2003 l'analisi dura 10/11 minuti, con Excel 2013 si blocca e chiude e riapre il file, o sta per ore senza concludersi mai.

    Che il codice sia lentissimo non mi sorprende affatto! È veramente molto tempo che non ho avuto la disgrazia di vedere un esempio di  spaghetti code, così ampio e così inestricabilmente intrecciato e ripetitivo! So che tu non hai scritto il codice ma, nella mia modesta opione, l'autore dovrebbe spendere tutta l'eternità sospesa con le piante nude dei piedi sopra i carboni ardenti dell'inferno!

    Non saprei dove cominciare con la mia critica del codice. Tuttavia, per darti solo un assaggio di ciò che trovo problematico, considera, come un piccolo esempio, il seguente scenario. Ci sono:

    • 17 fogli, ognuno di quali comprende diverse macro, sia codice di evento che codice che avrebbe dovuto meglio trovarsi in un modulo di codice standard
    • 14 moduli di codice pieno di codice
    • 5 Userform, ognuna  piena fino àllorlo di codice ...

    Non me ne lamento la quantità di codice ma piuttosto il modo in cui,  a mio parere,  spesso ripetutamente ed inutilemente, tale codice avvia e riavvia sia altro codice che se stesso.

    Solo a titolo di esempio, la procedura CommandButton1_Click nel modulo di codice del foglio Ordine esegue, tra molto altro, le seguenti azioni:

    • Chiama una macro (Cancella_Tutto sul foglio Statisiche) per cancellare oltre 65.000 righe su ciascuno di cinque fogli, ordina, gestisce e formatta una database di oltre 25.000 righe su quel foglio
    • Chiama un'altra macro(ToggleButton1_Click sul foglio Statisiche) per inserire oltre 25.000 formule e poi convertirle in valori
    • Mostra tre Userform
    • Nasconde cinque Userform, ognuna quattro volte e, solitamente inutilmente in quanto non sono nè visibili ne aperte!
    • [...]
    • E così via.

    Aggiungerei che una macro, ossia la routine Workbook_Open, che viene avviata automaticamente all'apertura del file, apre 11 fogli, l'uno dopo l'altro, e, di conseguenza, mostra o nasconda diverse Userform circa 60 volte e, alla apertura di ogni foglio ed ogni Userform, esegue il codice del foglio/Userform!! 

    Se fosse per me, non accetterei mai che un codice richiedesse  un tempo di esecuzione di

    10/11 minuti

    Comunque, non mi soprende che

    con Excel 2013 si blocca e chiude e riapre il file

    e riapre il file, o sta per ore senza concludersi mai.

    A questo proposito farei l'osservazione che diverse versioni, sia di Excel che il sistema operativo, sono più o meno tollerante di alcuni problemi rispetto alle versioni precedenti o successive. Nel caso del tuo workbook, credo sia molto possibile che ci sia un elemento di corruzione, sia del workbook che il codice VBA.

    Quindi vorrei suggerire i seguenti passi:

    • Scarica e avvia il componente aggiuntivo COM Excel VBA Code Cleaner di Rob Bovey
    • Salva, chiudi e riapri il file
    • Se il problema persiste, crea un nuovo workbook, importando i moduli di codice, i fogli, e le Userform, non dimenticando il codice nel modulo di codice dell'oggetto ThisWorkbook (Questa_cartella_di_lavoro per Excel 2013)
    • Riavvia l'addin Excel VBA Code Cleanerper il nuovo file
    • Salva, chiudi e riapri il nuovo file.

    Purtroppo, mentre in questo modo potresti forse risolvere la questione dei problemi indicati da te con Excel 2013, credo che i problemi di prestazione siano inerenti e dovuto in gran misura al modo in cui sia stato scritto il codice. 

    In effetti, credo che la vera soluzione ai problemi di prestazione richieda che il codice sia  globalmente revisionato e riscritto.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento