Chiusura Controllata



  • Chiusura Controllata
    di Perry data: 19/09/2014 13:25:58

    Buona giornata a tutti, chiedo aiuto per risolvere il seguente problema.:
    Opero con Excel su un File principale e devo aprire altri file Excel da cui prelevo o visualizzo dei dati, mi capita spesso nel chiudere il file in visualizzazione (senza salvataggio) di chiudere per errore anche la sessione Excel perdendo gli aggiornamenti eseguiti sul file principale.

    Vorrei che in chiusura di Excel mi chiedesse con un Msgbox se voglio chiudere il file principale e
    se SI, eseguire il salvataggio e la chiusura di Excel,
    se NO rimanere nel file principale e proseguire con altre operazioni.

    Infinitamente grato
    Perry



  • di lepat (utente non iscritto) data: 19/09/2014 15:57:00

    Appena fai una modifica ad un file al momento della chiusura Excel ti chiede se vuoi salvare



  • di Zer0Kelvin data: 19/09/2014 21:49:33

    Ciao.
    In teoria sì, però ho constatato "sulla mia pelle" che non è sempre vero.
    Si può usare l'evento BeforeClose della cartella di lavoro.
    Inserisci questo nel modulo di codice di "Questa_cartella_di_lavoro"
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        If MsgBox("Vuoi davvero chiudere il file?", vbYesNo + vbExclamation, "ATTENZIONE!") <> vbYes Then Cancel = True
    End Sub
    



  • di Zer0Kelvin data: 19/09/2014 21:52:00

    Scusate, il codice che ho postato non esegue il salvataggio però, chiede solamente conferma per la chiusura.


  • Chiusura Controllata
    di Perry (utente non iscritto) data: 20/09/2014 15:08:52

    per Lepat :
    Quello che dici è vero, ma se uno si sbaglia e invece di chiudere il file cliccando sulla sua propria crocetta, clicca sulla chiusura (subito sopra) dell' applicazione Excel tutto è perduto.

    per Zer0Kelvin :
    Grazie ho provveduto e mi chiede la conferma,
    come faccio a forzare il salvataggio della cartella principale (quella che ha aperto la sessione Excel per intenderci) prima di chiuderla ??
    Grazie
    Perry




  • di Zer0Kelvin data: 21/09/2014 09:03:58

    Puoi forzare il salvataggio alla chiusura con
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        ThisWorkbook.Save
    End Sub
    



  • di Zer0Kelvin data: 21/09/2014 09:11:13

    Oppure chiedere se si vuole salvare la cartella
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim Conferma As Integer
        Conferma = MsgBox(ThisWorkbook.Name & ": salvare questa cartella prima di chiudere?", vbInformation + vbYesNoCancel)
        If Conferma = vbYes Then
            ThisWorkbook.Save
        ElseIf Conferma = vbCancel Then
            Cancel = True
        End If
    End Sub


  • Chiusura Controllata
    di Perry (utente non iscritto) data: 21/09/2014 12:12:41

    Perfetto, grazie 1k
    Perry