Problema export codice vba

di il
6 risposte

Problema export codice vba

Buongiorno.

Per poter fare un UpGrade del software su pc esterno, ho cercato di esportare il codice VBA.

Excel me li memorizza come file cls.

Quando cerco di importarli  (in un altro pc con Excel 2019) il software non accetta tutti i caratteri accentati (ò-è-à-ù) e li trasforma in “?”.

Ho provato a importarli dal mio Excel che li ha generati col medesimo errore.

Così facendo mi modifica alcune variabili e nomi di sub con conseguenti errori da parte del sistema.

Se apro il file cls con blocco note i caratteri sono giusti quindi non sono stati alterati nel salvataggio.

Non parliamo di Excel 365. Quando importa i file non cambia i caratteri accentati ma, al contrario di Excel 2019, non sovrascrive i codici presenti nei fogli ma ne crea degli altri col codice importato.

Tra poco cambierò il mio nome in Don Chisciotte che lotta contro le tribulazioni di  Excel…..ha ha ( anzi cambier?)

Grazie a chi vuole aiutarmi.

PS: Ho già memorizzato manualmente tutto il codice su Blocco note per trasferirlo, sempre manualmente, nell'altro pc.

6 Risposte

  • Re: Problema export codice vba

    Non usare lettere accentate nel nome di variabili o sub/function

  • Re: Problema export codice vba

    Oegon buona idea….grazie per la risposta.

    Ho per esempio un foglio che si chiama “disponibilità auto”. Un altro “disponibilità autisti”. Un altro ancora  “disponibilità mensile”.

    Ho detto i primi che mi sono venuti in mente.

    Quindi cambiando i nomi dovrei rivedere tutto il codice che fa riferimento a questi fogli per non parlare delle sub e variabili varie….

    Si. Con trova e sostituisci qualche cosa lo eviti ma poi chi garantisce dell'integrità del codice ?

    Faccio prima col copia e incolla manuale…. ha ha

    Spero eri sarcastico.

    La cosa strana è che non è un file di qualche applicazione esterna che poi va giustamente riconvertito con i suoi codici giusti.

    E' un file che ha salvato excel ma che non è poi più in grado di leggere correttamente.

    Excel 365 non sbaglia ma mi crea l'altro problema sopra citato. 

    Qualcuno mi può spiegare come evitarlo ?

  • Re: Problema export codice vba

    24/07/2024 - Premuroso ha scritto:


    Spero eri sarcastico.

    Decisamente no. Come hai appena scoperto, utilizzare lettere accentate, spazi, punteggiatura e cose simili, complicano la vita di un programmatore.

    Per mantenere le lettere accentate nell'etichetta ma non nel codice puoi sfruttare il CodeName dello Sheet. Guarda nel TreeView a sinistra del VBE: dovresti trovare tutti i fogli. Selezioni il foglio di cui ti interessa il CodeName (as esempio “disponibilità auto”) e guardi tra le proprietà del foglio. È la prima che trovi, (Name) proprio scritto tra parentesi tonde.

    Se non vedi le proprietà, seleziona il foglio e poi premi F4 sulla tastiera.

    Di sicuro il CodeName non ha accenti e dovrebbe bastarti un trova/sostituisci sull'intero progetto per sistemare.

  • Re: Problema export codice vba

    VBA è un prodotto obsoleto che deriva da prodotti morti e sepolti (pre Unicode). Che si abbiano problemi con le lettere accentate non mi meraviglia affatto.

    Con VB (dal 3 al 6 e con VBA) quando si scriveva codice in gruppo non ci sarebbe mai venuto in test di chiamare una variabile

    età

    e la chiamavamo

    eta

    Se il foglio si deve chiamare disponibilità auto e lo chiami semplicemente Auto disponibili non cambia molto 

  • Re: Problema export codice vba

    Grazie per le risposte.

    Pensavo fosse una risposta sarcastica ma capisco che non lo era…

    Farò come mi avete suggerito. 

    Buona giornata.

  • Re: Problema export codice vba

    24/07/2024 - oregon ha scritto:


    non ci sarebbe mai venuto in test di chiamare una variabile

    età

    È che la fregatura sta proprio nella gestione dei testi.

    In effetti, non sono certo che le vecchie versioni di Excel impedissero di usare caratteri accentati nelle linguette dei fogli. Se uno sfrutta la comodità, senza pensare ai problemi con le macro, quando poi comincia a scriverne a cercare il foglio Sheets("Disponibilità") non dovrebbe esserci nulla di male.

    Ed invece… XD

Devi accedere o registrarti per scrivere nel forum
6 risposte