Condividi tramite

Errore #NAME con una funzione definita dall'utente

Anonimo
2012-10-23T10:06:57+00:00

Buongiorno,

il mio problema riguarda la gestione dell'errore #NAME. Ho creato una funzione in un modulo vba che esegue i miei calcoli correttamente ma quando chiudo il documento e successivamente lo riapro, i campi calcolati con la mia funzione restituiscono l'errore #NAME. Mi basta entrare in una cella dove la mia funzione è inserita e dare invio e i miei campi vengono ricalcolati correttamente, ma come fare ad evitare questo fastidioso errore all'apertura?

Grazie!

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

Risposta accettata dall'autore della domanda

Anonimo
2012-10-23T10:49:43+00:00

Ciao Caterina,

Senza vedere la funzione è difficile aiutarti.

L'errore che ricevi deriva da qualcosa che non viene interpretato correttamente all'interno della tua funzione. Forse nella funzione si fa riferimento a qualche funzionalità non disponibile in fase di apertura cartella (vedi punto 1 dei due link)

Correct a #NAME? error

Correggere un errore #NOME?

David

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-10-24T10:23:48+00:00

    Si, è una funzione che ho definito in un modulo.

    Forse mi manca un passaggio? Se io creo una funzione in un modulo con la sintassi

    Function ricalcola ()

    ....

    end function

    e la eseguo in un file dove si trova quel modulo, il nome (nel mio esempio "ricalcola") è automaticamente valido o devo validarlo in qualche modo?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-10-24T05:42:34+00:00

     

    In ogni caso, la risposta di David ha fatto accendere una lampadina: essendo una funzione da me definita excel non la riconosce all'apertura, ma la calcola ogniqualvolta io entro nella cella in cui l'ho inserita. Perciò mi è bastato inserire in This Workbook una sub con il codice

     

    Ho assegnato la risposta a David.

    Rimane comunque un mistero (almeno per me) il perchè tu debba ricorrere al ricalcolo se non è stato precedentemente disabilitato.

    E, soprattutto, se il nome della UDF era valido quando hai chiuso il file, è valido anche alla sua riapertura.

    Il ricalcolo e l'errore restituito non hanno nulla in comune.

    Ho fatto diverse prove con UDF moooolto pesanti e non riscontro il tuo problema.

    Ma, domanda mia, l'UDF si trova nello stesso file?

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-10-23T17:45:45+00:00

    Grazie ad entrambi per le risposte!

    La funzione che ho definito nel mio codice calcola dei pagamenti in base a determinati requisiti...è un tantino articolata :)

    In ogni caso, la risposta di David ha fatto accendere una lampadina: essendo una funzione da me definita excel non la riconosce all'apertura, ma la calcola ogniqualvolta io entro nella cella in cui l'ho inserita. Perciò mi è bastato inserire in This Workbook una sub con il codice

    Application.Calculation:=xlCalculationAutomatic

    per far si che excel la eseguisse!

    Grazie mille!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-10-23T10:47:32+00:00

    Buongiorno,

    il mio problema riguarda la gestione dell'errore #NAME. Ho creato una funzione in un modulo vba che esegue i miei calcoli correttamente ma quando chiudo il documento e successivamente lo riapro, i campi calcolati con la mia funzione restituiscono l'errore #NAME. Mi basta entrare in una cella dove la mia funzione è inserita e dare invio e i miei campi vengono ricalcolati correttamente, ma come fare ad evitare questo fastidioso errore all'apertura?

     

    Grazie!

    Come prima cosa prova ad aggiungere: Applicatio.Volatile all'interno della funzione se ancora non lo hai fatto in modo da avere uno scema simile a questo:

        'dichiarazione variabili se ci sono

        '

        Application.Volatile

        'corpo della funzione

        '

    Poi sarebbe molto bello sapere *cosa fa* la tua funzione.

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento