You are here:Home-Domande su Excel VBA e MACRO-Interruzione esecuzione premendo tasto esc – Uscita da file
Interruzione esecuzione premendo tasto esc – Uscita da file2018-04-14T21:01:33+02:00

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

Taggato: 

Visualizzazione 11 filoni di risposte
  • Autore
    Post
    • AvatarShoulder
      Partecipante
        Post totali: 10
        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: 759

          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:

           

          Ciao By Sal (8-)
          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

        • AvatarShoulder
          Partecipante
            Post totali: 10

            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: 759

              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:

               

              Ciao By Sal (8-)
              se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

            • AvatarShoulder
              Partecipante
                Post totali: 10

                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: 759

                  Ciao non puoi nemmeno allegare la macro?

                  Ciao By Sal  :bye:

                  Ciao By Sal (8-)
                  se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                • sidsid
                  Moderatore
                    Post totali: 750

                    …..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: 10

                      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: 5

                        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 2 anni, 3 mesi fa da tanimontanimon.
                        • Questa risposta è stata modificata 2 anni, 3 mesi fa da tanimontanimon.
                      • AvatarShoulder
                        Partecipante
                          Post totali: 10

                          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: 5

                            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: 10

                              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

                               

                               

                          Visualizzazione 11 filoni di risposte
                          • Devi essere connesso per rispondere a questo topic.