intercettare tasto esc su ciclo

Anonimo
2012-02-10T19:52:29+00:00

salve 

ho del codice vba in cui eseguo un ciclo for molto lungo che al suo interno esegue delle operazioni anche queste molto lunghe

io vorrei fare un controllo dentro il ciclo più esterno in modo tale da intercettare la pressione

del tasto ESC  e quando premuto effettuare una richiesta all'utente per sapere se vuole interrompere l'operazione oppure vuole proseguire con l'elaborazione

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
2012-02-18T15:31:52+00:00

Penso sia più pratico fare tutto da VBA usando il metodo Application.OnKey

es.:

...........

Application.OnKey "^a", "NomeDellaMacroCheVoglioEseguire"

...........

Dopo di che questo codice è stato eseguito, la macro "NomeDellaMacroCheVoglioEseguire" verrà eseguita ogni volta che si preme la combinazione di tasti  CTRL+a.

bark! .. bark!

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-02-11T09:33:12+00:00

Il codice è perfetto ma come faccio a fare questo :

quote:

Aggancia la macro mStop che trovi qui sotto ad una tasto di scelta rapida(esempio CTRL+a).

Vedi qui punto 5: http://www.maurogsc.eu/excel/xlsdoveinserirecodice.aspx

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-02-11T10:21:01+00:00

    lol piu facile di cosi :)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-02-10T20:49:48+00:00

    Il codice è perfetto ma come faccio a fare questo :

    quote:

    Aggancia la macro mStop che trovi qui sotto ad una tasto di scelta rapida(esempio CTRL+a).

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-02-10T20:39:06+00:00

    salve 

    ho del codice vba in cui eseguo un ciclo for molto lungo che al suo interno esegue delle operazioni anche queste molto lunghe

    io vorrei fare un controllo dentro il ciclo più esterno in modo tale da intercettare la pressione

    del tasto ESC  e quando premuto effettuare una richiesta all'utente per sapere se vuole interrompere l'operazione oppure vuole proseguire con l'elaborazione

    Questa la soluzione.

    Mettiamo tu abbia un ciclo nella macro m() e voglia o meno interromperlo a discrezione dell'utente.

    Aggancia la macro mStop che trovi qui sotto ad una tasto di scelta rapida(esempio CTRL+a).

    Lancia la macro m e poi premi CTRL+a. Ti verrà chiesto se vuoi o meno interrompere il ciclo.

    Ecco le macro da copiare in un modulo standard:

    Private bln As Boolean

    Public Sub m()

        Dim lng As Long

        Dim lRisposta As Long

        bln = True

        For lng = 1 To 50000

            DoEvents

            If bln = True Then

                Cells(lng, 1).Value = lng

            Else

                lRisposta = MsgBox("Continuare il ciclo?", _

                    vbYesNo + vbQuestion, "Attenzione!")

                If lRisposta = vbNo Then

                    Exit Sub

                End If

            End If

        Next

    End Sub

    Public Sub mStop()

        bln = False

    End Sub

    Facile (spero) adattarla alle tue esigenze. Fai sapere, grazie.

    La risposta è stata utile?

    0 commenti Nessun commento