You are here:--Interruzione esecuzione premendo tasto esc – Uscita da file
Interruzione esecuzione premendo tasto esc – Uscita da file2018-04-14T21:01:33+01:00

Home Forum Domande su Excel VBA e MACRO Interruzione esecuzione premendo tasto esc – Uscita da file

  • Autore
    Articoli
  • AvatarShoulder
    Partecipante
      Post totali: 8
      Ciao a tutti….
      chiederei una mano su questo aspetto:
      Se durante l’esecuzione di una macro in Excel viene premuto il taso esc (anche ripetutamente) compare una userform “Esecuzione codice interrotto”. Vorrei poter associare al tasto FINE di detta userform  un comando di uscita dal file senza salvataggio (ActiveWorkBook.Close ?)
      In altre parole cliccando su FINE il file dovrebbe chiudersi senza salvataggi
      E’ possibile?
      Ringrazio anticipatamente dell’aiuto
      Saluti
      Shoulder
    • BySalvBySalv
      Amministratore del forum
        Post totali: 541

        Ciao Shoulder, si certo, però anche i dati che hai inserito nella UserForm non saranno registrati se hai un pulsante per registrare i dati.

        nel codice del pulsante fine basta scrivere

        Application.DisplayAlerts = False
        
        ActiveWorkbook.Close

        la prima riga serve per non far comparire la finestra del salvataggio.

        al posto di “ActiveWorkbook.Close” si potrebbe scrivere anche

        Application.Quit

        ma questo comporterebbe anche la chiusura di altri eventuali file Excel Aperti, fai la prova cambiando comando.

        fai sapere se risolvi

        Ciao By Sal  :bye:

         

      • AvatarShoulder
        Partecipante
          Post totali: 8

          Ciao e grazie della risposta

          I codici da te suggeriti credo possano generare il mio desiderata, ma problema è come associarli al pulsante FINE.

          Forse mi sono espresso male parlando di userform. Io intendo la finestra/avviso Microsoft Visual Basic di Interruzione Codice che compare premendo ripetutamente il tasto ESC durante l’esecuzione di una macro.

          Mi sono poi accorto che, se pur rapidamente, talvolta accade di ricevere un avviso diverso (sempre premendo ripetutamente il tasto ESC durante l’esecuzione di una macro): ad esempio “Runtime 1004” e non “Interruzione di codice”.

          Io vorrei che, indipendentemente dall’avviso, premendo il pulsante FINE dell’avviso stesso il file si chiudesse senza salvare.

          Il altre parole sto cercando un modo per uscire dall’esecuzione di una macro (premendo il tasto ESC) e imporre la chiusura del file senza salvare (premendo il pulsante FINE a cui però -il mio problema!- vanno associati i comandi).

          Possibile? Grazie in anticipo

          Shoulder

           

           

           

           

           

        • BySalvBySalv
          Amministratore del forum
            Post totali: 541

            Ciao Normalmente con il tasto “Esc” non sempre si riesce a bloccare la macro.

            ma una volta bloccata ti esce il messaggio di debug, che puoi riprendere vedere dove si è bloccata o finire la macro.

            a questo punto perchè vuoi bloccare la macro?

            1. ci mette troppo tempo?
            2. non volevi lanciarla
            3. perche ti serve il tasto fine
            4. non mi è troppo chiaro il tuo problema

            si potrebbe inserire un comando per bloccare la macro, oppure una gestione degli errori, comunque un file d’esempio sarebbe necessario senza dati sensibili, vai in come fare per allegare il file.

            Ciao By Sal  :bye:

             

          • AvatarShoulder
            Partecipante
              Post totali: 8

              Ciao,

              premendo ripetutamente il tasto ESC l’esecuzione si blocca sempre. I messaggi di avviso come detto possono essere diversi (interruzione codice, debug…)

              Il mio desiderata e’ che la pressione del pulsante FINE sul messaggio di avviso comporti la chiusura del file senza salvare.

              Diciamo che la pressione del tasto ESC per uscire dall’esecuzione è motivata dal fatto che la macro ci sta mettendo ‘troppo’ (ma il motivo puo’ essere qualunque: l’utente vuole terminare l’esecuzione)

              Credo che un allegato non aiuti.

              Grazie in anticipo per l’aiuto.

              Saluti

              Shoulder

               

            • BySalvBySalv
              Amministratore del forum
                Post totali: 541

                Ciao non puoi nemmeno allegare la macro?

                Ciao By Sal  :bye:

              • sidsid
                Moderatore
                  Post totali: 723

                  …..Diciamo che la pressione del tasto ESC per uscire dall’esecuzione è motivata dal fatto che la macro ci sta mettendo ‘troppo’

                  Ciao
                  Intanto si potrebbe vedere perchè la macro ci mette tanto.
                  Si può vedere il codice?

                • AvatarShoulder
                  Partecipante
                    Post totali: 8

                    Ciao,

                    perdonami ma stiamo spostando “il tema”.

                    Ritornando al quesito: premendo ripetutamente il tasto ESC l’esecuzione si blocca (sempre). I messaggi di avviso come detto possono essere diversi (interruzione codice, debug…). Il mio desiderata e’ che la pressione del pulsante FINE del messaggio di avviso di Visual Basic comporti la chiusura del file senza salvare.

                    La macro può metterci tanto ad esempio perché l’utente ha aperto altri file Excel che assorbono risorse di sistema.

                    Vi è un modo per far sì che premendo il tasto FINE del messaggio di Visual Basic il file si chiuda senza salvataggio?

                    Grazie

                    Shoulder

                     

                     

                     

                     

                     

                  • tanimontanimon
                    Partecipante
                      Post totali: 4

                      ciao,

                      puoi provare così

                      in un modulo standard

                      Sub esci()

                      ‘ chiude il file senza salvare
                      ThisWorkbook.Close SaveChange:=False

                      ‘chiude Excel
                      Application.Quit

                      End Sub

                      nell’evento Activate del foglio ineressato

                      Private Sub Worksheet_Activate()
                      ‘alla pressione del tasto ESC, si scatena la macro “esci”
                      Application.OnKey “{ESC}”, “esci”

                      End Sub

                       

                      Ciao

                      Frank

                       

                       

                      • Questa risposta è stata modificata 1 anno, 7 mesi fa da tanimon tanimon.
                      • Questa risposta è stata modificata 1 anno, 7 mesi fa da tanimon tanimon.
                    • AvatarShoulder
                      Partecipante
                        Post totali: 8

                        Ciao Frank e grazie del riscontro

                        Purtroppo, salvo abbia correttamente compilato come da tua indicazione non funziona.

                        Ho inserito nel modulo 1 la macro Sub Esci e in tutti i fogli del file  la Private Sub Worksheet_Activate().

                        Se premo ESC durante l’esecuzione della macro non determino l’uscita dal file, ma appaiono sempre gli avvisi di Visual Basic di cui di diceva.

                        Saluti

                        Marco

                      • tanimontanimon
                        Partecipante
                          Post totali: 4

                          Ciao Marco,

                          non hai allegato il tuo file e io non ne ho uno analogo per fare una prova:

                          durante l’esecuzione della macro, riesci a selezionare un foglio diverso da quello attivo?

                           

                          Da come hai riferito dovresti avere applicato correttamente quanto ti ho suggerito e se

                          la risposta alla domanda precedente è sì, al cambio della selezione del foglio,

                          premi il tasto ESC  e dovrebbe funzionare.

                          Se diversamente durante l’esecuzione della macro, la selezione di un foglio diverso non è possibile,

                          purtroppo……..  mi arrendo.

                           

                          Ciao

                          Frank

                           

                           

                        • AvatarShoulder
                          Partecipante
                            Post totali: 8

                            Ciao Frank

                            durante l’esecuzione non posso selezionare altri fogli (la rotellina gira).

                            La macro utilizza dati e formattazione di più fogli anche se non si vede durante l’esecuzione (Application.ScreenUpdating = False)

                            Ho provato come ti dicevo a inserire la Private…da te suggerita in tutti i fogli… nisba!!

                            Possibile che non si possa decidere di interrompere la macro (lato utente) imponendo la chiusura file senza salvataggi per preservarlo (lato programmatore)

                            Usando ESC chiunque puo’ interrompere la macro e trovarsi nel mezzo dell’escuzione visualizzando (cliccando debug) fogli che erano nascosti all’utente!!!

                            Ho dato un occhio su internet…. strano ci sia poco su questa issue che pensavo essere tema più comune.

                            VBA genius venghino!!

                            Grazie comunque Frank

                            Saluti

                            Marco

                             

                             

                          Devi essere loggato per rispondere a questa discussione.

                          Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                          Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                          Chiudi