Excel VBA errore all'apertura (manca un riferimento?)

Quante volte ci è capitato di aprire un foglio Excel di un collega e di ritrovarci errori dovuti ai riferimenti VBA non trovati sul nostro pc. E' questo il caso delle librerie (file con estensione ocx o dll) che sono state incluse nel progetto vb di chi ha sviluppato in VBA excel ma che non sempre sono presenti in tutti i pc e che quindi per il corretto funzionamento delle macro programmate e dei controlli usati (calendari, player, slidebar, optionbutton, radiobutton ecc...) devono essere installate sui pc dove si utilizzano i fogli excel con questi riferimenti. Una volta che si trova l'errore dal menu di excel bisogna:
  1. Andare in "Strumenti --> macro --> visual basic Editor" (in alternativa ALT+F11)
  2. Per capire il componente che manca (file dll o ocx) bisogna aprire dal menu Strumenti la voce Riferimenti che contiene con un segno di spunta i componenti usati excel vba strumenti manca riferimento ocx dlldall'excel che abbiamo aperto. A fianco a qualche riferimento possiamo notare la voce "MANCA" ed il nome del file che sul nostro pc non c'è o non è stato trovato. Selezionando la riga con il componente mancante appena più in basso si possono recuperare informazioni utili per risolvere il problema; ad esempio si può vedere il path dove il componente viene cercato (molto spesso si tratta della cartella c:\windows\system32) e si può prendere nota del nome del file mancante.
  3. Scaricare file mancante da internet (Consiglio di fare il download di questi files da fonti ufficiali e sicure tipo microsoft MSDN o similari). Una volta scaricati i file mancanti si devono posizionare proprio nel path dove l'excel li ricerca ed effetturane la registrazione.
  4. Da linea di comando DOS basta posizionarsi nel path di interesse e digitare: regsvr32 nomefile registrare dll da dose premendo invio si effettua la registrazione
  5. Chiudendo e riaprendo l'excel con l'errore ora dovrebbe essere tutto ok siccome il riferimento è stato ripristinato. Se dovessimo avere la necessità di deregistrare un componente (al solito ocx o dll) basta utilizzare la sintassi: regsvr32 /u nomefile

Commenti

Post popolari in questo blog

Alla scoperta della Fonte Miracolosa di Garlasco: Un Viaggio tra Speranza e Autenticità

WinForLife: i miei pronostici per le estrazioni di oggi

Velocizzare ed ottimizzare il codice di programmazione vba excel in 2 passi