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.