Ciao Mauro,
Il problema si ripresenta nel passare da Excel 2007 in ambiente XP a Excel 2010 in ambiente W7-64bit. Questo il solito errore:
"La libreria degli oggetti non è valida o contiene riferimenti a defiizioni di oggetti che non è possibile trovare."
Verifico l'elenco dei riferimenti VBA e questa sono le liste pre-cambio
- Visual Basic for Application
- Microsoft Excel 12.0 Object library
- OLE Automation
- Microsoft office 12.0 Object Library
- Microsoft forms 2.0 Object library
- Microsoft Windows Common Controls-2.6.0 (SP6)
e post-cambio
- Visual Basic for Application
- Microsoft Excel 14.0 Object library
- OLE Automation
- Microsoft office 14.0 Object Library
- Microsoft forms 2.0 Object library
- Microsoft Windows Common Controls-2.6.0 (SP6)
Evidenza: l'Object Library di Excel 2010 è la 14 non la 12! Ma come risolvo questa differenza.
Ho installato OWC11.exe per la componente web che uso nelle forms e che ora non viene più segnalato come "mancante" (mi avevi già indicato questa componente come "anomalia"...)
Poi ho provato ad aggiungere manualmente i componeti che sicuramente sono utilizzati nel vecchi ambiente (FM20.DLL, stdole2.tld, mscomct2.ocx) col comando in ambiente VBA Strumenti + Riferimenti... + Sfoglia... (dopo averli copiati dal vecchio ambiente in
una directory del nuovo ambiente)
Qui addirittura non ho sortito alcun effetto nemmeno sulla lista dei riferimenti attivati (credo che la cosa sia logica, visto che tento di aggingere componenti o che sono già attivi o che sono precedenti a quelli già attivi...). Il debug si pianta subito
alla primissima riga di codice del Modulo1.
...e mò!?
Grazie per l'ennesimo aiuto sul tema. Sergiovery
Alcune librerie sono proprie di Visual Basic 6.0. Lo hai installato sulla nuova macchina?
Il semplice copia/incolla di OCX e DLL non risolve il problema, vogliono registrate, vedi qui:
http://support.microsoft.com/kb/146219/it
NOTA. Non puoi installare/distribuire librerie/ocx se sul pc ospite non sei in possesso della licenza relativa a quella libreria e/o ocx.
12/14 sono inunfluenti, verrà caricata la libreria della versione di Excel presente sul pc. Ovviamente il codice vb dovrà tenere conto di eventuali differenze o, meglio ancora, si programma *sempre* per la versione più vecchia, non implementando caratteristiche
che si trovano solo nell'ultima versione.
Per OWC11.exe, immagino che qui avrai già visto:
http://www.microsoft.com/downloads/it-it/details.aspx?familyid=7287252c-402e-4f72-97a5-e0fd290d4b76&displaylang=it