Evitare chiusura di excel



  • Evitare chiusura di excel
    di Semio data: 08/02/2017 11:03:01

    Ciao a tutti.
    QUELLO CHE VORREI FARE: alla chiusura dell'excel (con la "x" o in altro modo) voglio effettuare un controllo, cioè se la cifra contenuta nella cella U33 risulta maggiore della cifra contenuta nella cella W33, deve partire la macro "Verifica_Crediti" con il messaggio che avvisa e che chiede se bisogna correggere subito oppure no. Se rispondo di no, allora chiude l'excel, ma se rispondo di si excel resta aperto e mi fa continuare la sessione di lavoro.
    QUELLO CHE ACCADE : in realtà se rispondo di si, excel si chiude ugualmente come se avessi risposto di no.
    Come posso fare?
    Grazie a tutti quelli che vorranno darmi una mano.
    Allego la parte del codice
     
    Option Explicit
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        Call Verifica_Crediti
    End Sub
    
    
    Sub Verifica_Crediti()
        If Range("W33") > Range("U33") Then
            risposta = MsgBox("CREDITI INSUFFICIENTI" & Chr(13) & "VUOI CORREGGERE ADESSO?", 4 + 32, "CHIUSURA DEL FORM")
            'se risposta è 6 = si; se risposta è 7 = no
            If risposta = 7 Then
                Application.Quit
            End If
        End If
    End Sub
    



  • di Luca73 data: 08/02/2017 13:36:10

    Ciao
    Permettimi di fare un pochino di polemica.
    prima di chiedere aiuto hai provato a leggere l'help sull'evento beforeclose.
    in particolare con riferimento al parametro cancel che:

    Citazione dall'help: "Cancel Obbligatorio Boolean Ha valore False quando si verifica l'evento. Se la routine evento imposta questo argomento su True, l'operazione di chiusura verrà interrotta e la cartella di lavoro rimarrà aperta. "

    Ora hao l'informazione che ti serve. prova a modificare la macro Io ti consiglio di riportare tutto dentro la macro senza usare un call e poi fammi sapere.

    Consiglio personale esistono le variabili di VBA preimpostate come VBYes e VBno (più facili da ricordare che 6 o 7)
    Ciao
    Luca