Condividi tramite

Application.quit in Excel 2010

Anonimo
2011-03-30T15:45:03+00:00

Ciao a tutti,

ho un file excel con macro che non ha mai avuto nessun tipo di problema, adesso, con Excel 2010, al termine della macro ho il messaggio "Excel ha smesso di funzionare ecc..."

Quello che la macro deve fare lo fa senza problemi, l'errore si genera sulla riga:

application.quit

C'è qualche novità in Excel 2010? qualche nuova instruzione da usare?

grazie

P.

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
2011-03-31T14:15:01+00:00

Ciao a tutti,

ho un file excel con macro che non ha mai avuto nessun tipo di problema, adesso, con Excel 2010, al termine della macro ho il messaggio "Excel ha smesso di funzionare ecc..."

Quello che la macro deve fare lo fa senza problemi, l'errore si genera sulla riga:

application.quit

C'è qualche novità in Excel 2010? qualche nuova instruzione da usare?

Application.Quit chiude l'applicazione nella quale hai la routine. Ma se non posti il codice(o una parte del codice), o se non spieghi(bene) cosa sta facendo la routine, rispondere diventa difficile, Excel 97 o Excel 2010.

La tua parola di routine mi ha fatto scattare una scintilla...

Ho provato a sostituire l'application.quit con "call Esci", e definendo poco sotto

Public Function Esci()

    Application.Quit

End Function

Nessun errore e funziona tutto...

vai a sapere perchè....

Il perchè è scritto nel *tuo codice*, ma noi non lo vediamo... ;-). Bene. Abbiamo assolto il povero Application.Quit. Grazie per il riscontro e buon lavoro.

La risposta è stata utile?

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2011-03-31T14:06:16+00:00

il codice è veramente lungo, ma anche abbastanza banale, in poche parole è una cartella di lavoro con una decina di fogli, che servono per popolare dei menu a tendina che servono per aiutare l'utente finale nella compilazione.

La macro che viene lanciata non fa altro che:

<cut>

E poi si arriva all'application.quit

La cosa strana è che che la versione di Office 2007 non mi ha mai dato un errore, con Office 2010 invece... sia su XP che su 7

Spero di essere stato chiaro

Ripeto: Application.Quit non da nessun tipo di errore in Excel 2010. Prova:

Public Sub m()

    Application.Quit

End Sub

Quindi, l'errore è da qualche altra parte. Niente codice, niente possibilità di aiuto(almeno da parte mia). Cosa ci sia di *incompatibile* nel tuo codice, non posso saperlo, perchè non lo vedo. Ma non Application.Quit.

Aggiungo solo che se stai anche facendo il Set a Nothing degli oggetti, Application.Quit deve *precedere* i Set a Nothing dei vari oggetti. Se non hai capito quest'ultima parte perchè non utilizzi il Set a Nothing, fai conto non l'abbia scritta. Grazie per l'attenzione.

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-03-31T14:06:56+00:00

    Ciao a tutti,

    ho un file excel con macro che non ha mai avuto nessun tipo di problema, adesso, con Excel 2010, al termine della macro ho il messaggio "Excel ha smesso di funzionare ecc..."

    Quello che la macro deve fare lo fa senza problemi, l'errore si genera sulla riga:

    application.quit

    C'è qualche novità in Excel 2010? qualche nuova instruzione da usare?

    Application.Quit chiude l'applicazione nella quale hai la routine. Ma se non posti il codice(o una parte del codice), o se non spieghi(bene) cosa sta facendo la routine, rispondere diventa difficile, Excel 97 o Excel 2010.

    La tua parola di routine mi ha fatto scattare una scintilla...

    Ho provato a sostituire l'application.quit con "call Esci", e definendo poco sotto

    Public Function Esci()

        Application.Quit

    End Function

    Nessun errore e funziona tutto...

    vai a sapere perchè....

    Grazie!!

    Ciao

    P.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-03-31T13:57:48+00:00

    il codice è veramente lungo, ma anche abbastanza banale, in poche parole è una cartella di lavoro con una decina di fogli, che servono per popolare dei menu a tendina che servono per aiutare l'utente finale nella compilazione.

    La macro che viene lanciata non fa altro che:

    Compilare la stringa DESTINATARIO con gli indirizzi e-mail dei destinatari (tramite select case in base ai dati inseriti dall'utente) e la stringa OGGETTO con i valori di alcune celle

    Controllare se le celle obbligatorie sono state compilate:

    If Cells(x, y).Value = "" Then

        MsgBox "Non hai inserito questo o quest'altro"

        Exit Sub

    End If

    Fare un copia incolla del foglio che l'utente compila su un foglio bianco (incolla solo valori)

    Eliminare tutti i fogli della cartella di lavoro che non occorrono più (che popolavano i vari menu a tendina e cerca.vert). Elimino questi fogli per ridurre la dimensione dell'allegato via mail e del file stesso (da più o meno mezzo mega a 60/70 Kb)

    Salvare un copia del file così ridotto in una cartella sul desktop dell'utente (se la cartella non c'è viene creata), il nome del file dipende dai dati inseriti

    Preparare una mail da spedire allegando lo stesso file:

    ActiveWorkbook.SendMail Recipients:=Destinatario, Subject:=Oggetto

    E poi si arriva all'application.quit

    La cosa strana è che che la versione di Office 2007 non mi ha mai dato un errore, con Office 2010 invece... sia su XP che su 7

    Spero di essere stato chiaro

    grazie ancora

    P.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-03-30T16:43:13+00:00

    Ciao a tutti,

    ho un file excel con macro che non ha mai avuto nessun tipo di problema, adesso, con Excel 2010, al termine della macro ho il messaggio "Excel ha smesso di funzionare ecc..."

    Quello che la macro deve fare lo fa senza problemi, l'errore si genera sulla riga:

    application.quit

    C'è qualche novità in Excel 2010? qualche nuova instruzione da usare?

    Application.Quit chiude l'applicazione nella quale hai la routine. Ma se non posti il codice(o una parte del codice), o se non spieghi(bene) cosa sta facendo la routine, rispondere diventa difficile, Excel 97 o Excel 2010.

    La risposta è stata utile?

    0 commenti Nessun commento