Errore _xlfn.IFERROR improvviso

Anonimo
2014-01-24T17:13:28+00:00

Ciao a tutti,

mi riferisco sempre al file "Gestione Progetti e Notule" del quale oramai a forza di pezzi di codice l'ho pubblicato tutto sul forum.

L'ho utilizzato tranquillamente per un bel periodo di tempo, direi per almeno 10/11 mesi senza che desse problemi se non quelli che insieme abbiamo risolto, ma ieri al lancio di una funzione di salvataggio che ha sempre funzionato meravigliosamente bene la routine si blocca e passa al debug di Visual Basic.

La routine è questa e l'errore lo da bloccandosi su nome.Delete in grassetto.

La routine viene richiamata da un'altra che salva il foglio.

__________________________________________

Public Sub cancella_nomi() ' cancella tutti i nomi dal foglio ad eccezione dell'area di stampa in modo                                        ' che ricaricando il file salvato

Dim wk As Workbook        ' non ci sia il conflitto con i nomi che restano sulla sessione di excel

Dim nome As Name

Set wk = ActiveWorkbook

With wk

For Each nome In .Names

    If LCase(nome.NameLocal) <> "Fattura!Area_Stampa" Then nome.Delete

    'Debug.Print (nome.NameLocal)

Next

End With

Set nome = Nothing

Set wk = Nothing

End Sub

__________________________________________

Se con il mouse, a Debug interrotto, mi posiziono su LCase(nome.NameLocal) nella casellina che appare mi fa vedere         = _xlfn.IFERROR

e questi sono i nomi che ho visualizzato tramite Print e che dovrebbe cancellare meno uno e che ripeto ha cancellato fino a ieri.

_xlfn.IFERROR

Fattura!Area_stampaclienteelencoprivato

ho cercato nei nomi, ma _xlfn.IFERROR non esiste.

Grazie a chi può interessarsi.

Tullio

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
2014-01-28T10:30:12+00:00

Grazie a tutti,

ho risolto il problema utilizzando

ActiveCell.FormulaR1C1 = _

        "=IF(ISERROR(VLOOKUP(RC[-1],Rubrica!R2C2:R65536C15,9,FALSE)),"" valore di ricerca errato"",VLOOKUP(RC[-1],Rubrica!R2C2:R65536C15,9,FALSE))"

Ciao, alla prossima.

Tullio

La risposta è stata utile?

0 commenti Nessun commento

18 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-01-27T11:43:03+00:00

    Ragazzi,

    ora sì che non mi funziona.

    Ho caricato il file su dropobox come richiesto.

    Per provare, la procedura è semplice, si deve cliccare sul Pulsante Archivia e vedrete dove si blocca.

    Grazie dell'interessamento.

    Tullio.

    PS.: Mi sa che devo anche condividere qualcosa, ma non sò il link da usare.

    Se non posti il link al file....

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-01-27T11:35:37+00:00

    Ragazzi,

    ora sì che non mi funziona.

    Ho caricato il file su dropobox come richiesto.

    Per provare, la procedura è semplice, si deve cliccare sul Pulsante Archivia e vedrete dove si blocca.

    Grazie dell'interessamento.

    Tullio.

    PS.: Mi sa che devo anche condividere qualcosa, ma non sò il link da usare.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2014-01-25T21:04:38+00:00

    Ciao Mauro,

    l'ho fatto

    =(SE(VAL.NON.DISP(CERCA.VERT($A4;Rubrica!$B$2:$O$65536;9;FALSO));" "; CERCA.VERT($A4;Rubrica!$B$2:$O$65536;9;FALSO)))

     ma restituisce sempre lo zero.

    Credo di non essermi spiegato bene.

    La ricerca la fà nella Rubrica in base alla cella A4 che viene riempita con un dato prelevato in precedenza sempre dalla Rubrica, quindi la corrispondenza esatta la trova certamente.

    Quando dicevo che mi da zero è perché l'indice 9 è la colonna del nr.telefonico e quando trova la casella vuota restituisce allora lo zero, potrei in questo caso fargli restituire "nr.telefonico assente" ?

    O diventa complicato ?.

    Grazie.

    Tullio

    Ero rimasto a VAL.ERRORE.

    SE(VAL.ERRORE(CERCA.VERT($A4;Rubrica!$B$2:$O$65536;9;FALSO));"Non ho trovato nulla";CERCA.VERT($A4;Rubrica!$B$2:$O$65536;9;FALSO))

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2014-01-25T18:50:04+00:00

    Ciao Mauro,

    l'ho fatto

    =(SE(VAL.NON.DISP(CERCA.VERT($A4;Rubrica!$B$2:$O$65536;9;FALSO));" "; CERCA.VERT($A4;Rubrica!$B$2:$O$65536;9;FALSO)))

     ma restituisce sempre lo zero.

    Credo di non essermi spiegato bene.

    La ricerca la fà nella Rubrica in base alla cella A4 che viene riempita con un dato prelevato in precedenza sempre dalla Rubrica, quindi la corrispondenza esatta la trova certamente.

    Quando dicevo che mi da zero è perché l'indice 9 è la colonna del nr.telefonico e quando trova la casella vuota restituisce allora lo zero, potrei in questo caso fargli restituire "nr.telefonico assente" ?

    O diventa complicato ?.

    Grazie.

    Tullio

    La risposta è stata utile?

    0 commenti Nessun commento