Problema con excel 365

di il
23 risposte

Problema con excel 365

Buongiorno.

Se apro un menu a tendina e lo chiudo prima di cambiare foglio di lavoro  tutto ok (8 foglio in totale).

Se invece lascio il menu a tendina aperto (senza selezionare niente) ho questi comportamenti.

Con Excel 2019, al primo click sul foglio che seleziono, il menu a tendina viene chiuso e solo con il secondo click si cambia foglio. Tutto ok.

Con Excel 365 al primo click, sempre con un menu a tendina aperto, Excel cerca di cambiare immediatamente il foglio di lavoro (senza chiudere il menu a tendina aperto) e dà questo messaggio “Errore di run time ‘1004’. Errore nel metodo select per la classe range.”

In effetti nella sub Worksheet.Activate del foglio selezionato, al primo  comando Range().select si blocca e dà l'errore.

Lo fa con tutti i fogli e tutti i menu a tendina.

I menù a tendina sono dinamici. Ecco per esempio una formula posta con “Dati - Convalida dati”

=SCARTO(Liste!$W$4;CONFRONTA(H16&"*";Liste!$W$4:$W$33;0)-1;;CONTA.SE(Liste!$W$4:$W$33;H16&"*"))

Il problema, come spiegato pocanzi è nato con l'utilizzo di Excel 365.

Spero di essere stato chiaro….

Help grazie.

23 Risposte

  • Re: Problema con excel 365

    Ciao

    ho provato 

    a me rimane il disegnino della convalida e sparisce come do invio

    ma dovresti mettere la macro completa

    perchè pur avendo inserito la macro che seleziona una cella a me non rende problemi di sorta

    scusa una curiosità

    perchè apri la convalida se non la utilizzi

    e poi basta un invio per chiuderla

  • Re: Problema con excel 365

    Andreapev Grazie per la risposta.

    Non credo sia di alcuna utilità postare tutto il codice perchè questo si blocca alla prima istruzione dove trova Range().select.

    Si, non avrebbe senso lasciare aperto un menu a tendina ma, come è successo a me, può capitare.

    Excel genera una finestra con la descrizione dell'errore quando cerca di eseguire, al cambio foglio, la sua sub Worksheet.Activate.

    In effetti chiudendo la finestra di errore si può proseguire ma non so se alcune istruzioni poi non vengono eseguite.

    Non capisco cosa vuoi dire con il disegnino della convalida….

    Quando cambio foglio lo schermo mi presenta il foglio nuovo (quindi non vedo più il menu a tendina precedente) con la finestra di errore.

  • Re: Problema con excel 365

    Ciao

     evidente che l'errore sia scaturito dalla macro

    io ho provato con

    Private Sub Worksheet_Activate()
    Range("A1").Select
    End Sub

    è non mi rende errori

    vedo solo nel foglio aperto il simbolo della convalida (visto che resta attiva)

    e sparisce al primo invio

    per quello ti dicevo di allegare la macro

    magari si riesce a capire il perchè

  • Re: Problema con excel 365

    Ciao.

    Premetto che all'apertura di qualunque foglio, tutti dotati della Sub Worksheet_Activate() mi dà il problema.

    Ogni sub è diversa. Forse il problema è nella formula del menu a tendina non completamente compatibile con Excel 365 ?

    Allego come da te richiesto la più corta.

    Private Sub Worksheet_Activate() ' Revisione ok
    
    Range("A2:A400").Interior.ColorIndex = 1 ' rirpistina colore originale
    Range("A2:A400").Font.Color = vbWhite
    Range("A4").Select ' ******** il programma si ferma qui e dà l'errore *********
    
    If Sheets("Programma").Range("H12").Value = "" Then
       DataOggi = Date
    Else
       DataOggi = Sheets("Programma").Range("H12").Value
    End If
    
    IndirizzoUltimaCella = Cells(Rows.Count, "A").End(xlUp).Row ' trovo l'ultima cella
    
    For Ciclo = 4 To IndirizzoUltimaCella
    
    If Range("A" & Ciclo).Value = DataOggi Then
      Target = Ciclo
      Exit For
    End If
    
    Next
    Range("A" & Target).Select ' selezione la porzione di foglio che serve alla visualizzazione
    ActiveCell.Interior.ColorIndex = 46
    ActiveCell.Font.Color = vbBlack
    End Sub
    
  • Re: Problema con excel 365

    Incuriosito dal fatto che hai detto che a te la semplice istruzione Range("A1").select non da errori ho fatto un test.

    Ho eliminato il contenuto della sub sopra descritta e ho messo solo Range("A1").select.

    Ho avuto lo stesso messaggio di errore.

    secondo mè è la formula.

    NB: La differenza tra Excel 2019 e 365 riguardo al menu a tendina che si crea con questa formula è la seguente.

    2019: Inserisco le iniziali ma la tendina non si apre. Devo cliccare su un'altra cella e poi sulla freccia della tendina. 

    Solo così il menu mi dà un elenco nomi selezionati dalle iniziali. (solo con il foglio protetto)

    465: Mentre immetto dei caratteri, il menu mi mostra già i nomi selezionati dalle iniziali.

    Non so se questo può essere la causa. L'errore si presenta anche se non scrivo nessun carattere nel menu.

  • Re: Problema con excel 365

    Ciao

    che ci siano problemi con la funzione SCARTO() con il 365 ne dubito fortemente

    ma basta provare elimina la convalida e prova a cambiare foglio

  • Re: Problema con excel 365

    Fatto. 

    L'errore si ripresenta uguale.

    La differenza sta proprio nella versione Excel. La 2019 al primo tentativo di cambio foglio chiude il menu'.

    Ora chiedo. C'è un istruzione o codice  VBA che chiuda tutti i menu all'uscita da un foglio ?

    Potrei inserire un valore nella cella forzandone la chiusura ?

    Grazie.

    =Liste!$W$4:$W$33
  • Re: Problema con excel 365

    Ho provato la scappatoia sopra citata e funziona.

    Solo su un menu (che dava prima sempre l'errore).

    Rimango convinto che qualche cosa hanno tralasciato e/o cambiato in Excel 365. E questo crea il problema.

    Private Sub Worksheet_Deactivate()
    If Range("H16").Value = "" Then Range("H16").Value = ""
    End Sub
  • Re: Problema con excel 365

    Ciao

    C'è un istruzione o codice  VBA che chiuda tutti i menu all'uscita da un foglio 

    cosa te ne fai se l'errore si ripresenta anche senza convalida

    non mi intendo di VBA

    ma la tua macro mi va in debug qui (con convalida e senza convalida)

    Range("A" & Target).Select ' selezione la porzione di foglio che serve alla visualizzazione

    eliminandolo colora di rosso la cella A4

    e di nero le celle A2:A400

    ma la struttura del mio file è diversa dalla tua

    vediamo se qualche esperto in vba ti sistema la cosa

    in H16 hai la convalida?

    perchè a me non da fastidi

  • Re: Problema con excel 365

    Io mi intendo solo di formule

    perciò quello che dico è solo una mia idea in parole semplici

    la convalida è una simil macro inserita in excel

    ora se tu lasci attiva la macro e ne attivi un'altra 

    probabile che il 2019 prima di attivare la seconda terminasse la prima

    con il 365 questo non succede..infatti io vedo il simbolo della convalida nel foglio che apro.

    ma è una teoria tutta mia smentibile dagli esperti

    quel che non capisco è perchè ti vada in errore anche senza convalida

  • Re: Problema con excel 365

    Grazie per le risposte.

    andreapev: 

    Si è quello che penso anch'io. Si vede chiaramente con excel 2019 che, al primo click su un altro foglio, il foglio non cambia ma si chiude il menu a tendina. Ci vuole un altro click perchè il foglio cambi. In Excel 365 non succede e cambia al primo click il foglio.

    Ho posto rimedio con la macro di chiusura foglio in cui (purtroppo) ho dovuto “chiudere” tutti i menu a tendina presenti sul foglio. Funziona.

    Si in H16 ho uno dei menu a tendina con la formula sopra indicata.

    Sempre disposto a suggerimenti migliorativi….

    PS: A te da l'errore sulla linea da te segnalata perchè al tuo foglio mancano dei dati e la variabile “target” rimane nulla.

  • Re: Problema con excel 365

    18/07/2024 - Premuroso ha scritto:


    I menù a tendina sono dinamici. Ecco per esempio una formula posta con “Dati - Convalida dati”

    Ma se metti la formula in una cella, ti da per caso #N/D! oppure no?

    Tieni conto che quel primo Range("A4").Select non ti serve a nulla. È reso inutile dall'ultimo Select in fondo.

    Io ho provato ad emulare l'errore in un file creato da me, ma non ci son riuscito. La convalida si chiude, l'altro foglio viene attivato e scatta correttamente l'Activate effettuando la selezione.

    Usi l'Option Explicit? Perché non vedo dichiarazioni di variabili e se tu le avessi al livello di modulo potrebbero darti problemi (ma non quello che lamenti, il che è strano parecchio).

    Usa un sito di sharing e condividi un file che riproduca l'errore. Bada a rimuovere eventuali dati sensibili.

    Intanto ti propongo un tentativo un po' disperato: modifica la Select che da errore con

    Me.Range("A4").Select

    Se risolve, è un problema di ActiveSheet.

  • Re: Problema con excel 365

    Sgrubak grazie per la risposta.

    Non ho errori nelle formule (#N/D). Il programma su Excew 2019 gira da quasi un anno ( e tuttora).

    Ho messo Me.Range senza risultati.

    Il primo Range("A4").Select serve per portare il foglio all'inizio.

    Ho l'intestazione bloccata ma sotto ci possono essere molti dati a scorrere.

    Per comodità cerco di visualizzare i giorni più prossimi, tipo calendario per intenderci.

    Chiaramente se il giorno selezionato rimane troppo in basso la cella A4 non sarà più visibile.

    Cercherò di tirare “all'osso” il programma con l'errore attivo.

    Appena fatto vi informo.

  • Re: Problema con excel 365

    20/07/2024 - Premuroso ha scritto:


    Il primo Range("A4").Select serve per portare il foglio all'inizio.

    Si, ma non ti serve a nulla dato che poi successivamente nel codice sposti nuovamente la selezione, mi spiego?

    20/07/2024 - Premuroso ha scritto:


    Ho messo Me.Range senza risultati.

    Ok, allora prova un Application.GoTo, giusto per scaramanzia.

    Application.GoTo Me.Range("A4"), True

    Così a sentimento ho l'impressione che la tendina non ti lasci attivare il foglio (per qualche strano motivo) e da li l'errore che ricevi.

Devi accedere o registrarti per scrivere nel forum
23 risposte