Funzione ChrW mancante



  • Funzione ChrW() mancante
    di mdepi85 (utente non iscritto) data: 04/02/2015 21:16:51

    Ho creato un applicazione che usa la funzione ChrW(). L'applicazione funziona perfettamente, quando però trasferisco il file su un'altro pc sempre con Excel 2007, mi dà errore, dicendo che non riesce a trovare la libreria con la funzione ChrW().
    Cosa posso fare?

    Grazie a tutti in anticipo



  • di scossa data: 04/02/2015 21:25:55

    cit. mdepi85: "Cosa posso fare?"

    Sicuramente dovresti mostrare il codice .....


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di lepat (utente non iscritto) data: 05/02/2015 09:40:21

    se l'hai creata tu dovresti dire:
    1) chrW è una udf creata da te ?
    2) dove l'hai salvata ? in un modulo standard o in una libreria personale.



  • di scossa data: 05/02/2015 10:31:54

    cit. lepat: " chrW è una udf creata da te ?"

    Ti rispondo io: no, ChrW(codice_carattere) è l'equivalente di Chr(codice_Carattere) ma, mentre Chr() accetta solo valori tra 0 e 255, ChrW() accetta valori tra -32768 e 65535 e quindi si utilizza per restituire i caratteri Unicode.


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di mdepi85 (utente non iscritto) data: 05/02/2015 10:47:23

    ChrW() è una funzione già esistente, non so di preciso a quale libreria appartiene.
    Il messaggio di errore che mi compare è: "Impossibile trovare il progetto o libreria"

    Riporto dalla guida del VBA: "La funzione ChrW restituisce un valore String contenente il carattere Unicode tranne che nelle piattaforme che non supportano Unicode. In questo caso le funzioni sono identiche a quelle della funzione Chr."

    Ribadisco che non è un errore di sintassi, perchè su un pc funziona e su un altro no. Immagino che manchi una libreria, ma come potrei risolvere?
     
    Estratto del codice:
    ActiveCell =  ChrW(946) 



  • di Vecchio Frac data: 05/02/2015 10:50:02

    cit. "quando però trasferisco il file su un'altro pc sempre con Excel 2007, mi dà errore"
    ---> Anche a me capita qualche volta, con qualche mdb che si corrompe (e giù imprecazioni ^_^).
    Penso che si tratta di un falso positivo, cioè viene segnalato errore non perchè manca la libreria che contiene ChrW (che è la libreria "VBA" stessa, cioè VBE6.DLL), quanto piuttosto perchè si perde il riferimento ad essa. O magari la libreria registrata sul secondo pc non è proprio la stessa, ma di un service pack diverso.
    Controlla con Strumenti >> Riferimenti nel secondo pc a quale file punta "Visual Basic For Applications".
    verifica se il problema persiste anche così: nel secondo pc, con un file Excel vuoto, in finestra immediata scrivi "? ChrW(379)": deve restituirti la Z maiuscola. Ed è la prova che la libreria c'è e funziona. E' nel file trasferito da un pc all'altro che si creano i problemi di riferimenti.






  • di mdepi85 (utente non iscritto) data: 05/02/2015 12:54:57

    A Vecchio Frac:
    grazie dell'indicazione, farò la prova che mi hai suggerito nella finestra immediata e vi comunicherò l'esito.
    Grazie comunque a tutti per l'interesse mostrato, altre idee e suggerimenti sono ben accetti!



  • di mdepi85 (utente non iscritto) data: 05/02/2015 19:17:11

    Grazie del supporto, ho risolto il problema. Come suggerito da Vecchio Frac, ? ChrW(379) inserito nella finestra immediata di un nuovo file restituisce la Z maiuscola. Quindi ho aperto il file incriminato e da strumenti -> riferimenti ho disattivato la libreria "(MANCA): RefEdit Control". Ho salvato ed ora è tutto ok.

    Grazie a tutti, in particolare a vecchio frac!

    Ciao a tutti