arrêt d'une macro par appui sur une touche ou un bouton stop
4 réponses
Bernard H
Bonjour,
Ma feuille de calcul utilise une macro qui effectue un comptage long. Je =
voudrais que l'utilisateur puisse arr=EAter ce comptage soit par appui =
sur n'importe quelle touche, soit par clic sur un bouton "stop" =
associ=E9 =E0 une macro qui arr=EAte celle du comptage.
Merci pour votre aide
Bernard
d=E9sol=E9 pour les deux fils que j'ai perturb=E9 et merci =E0 Modeste =
pour ses conseils ; premiers pas dans une liste de diffusion !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
papou
Bonjour En théorie la touche Echap devrait faire l'affaire. Ceci étant pour être sûr, ajoute un Application.EnableCancelKey = xlInterrupt au début de ta macro Cordialement Pascal
"Bernard H" a écrit dans le message de news: Bonjour, Ma feuille de calcul utilise une macro qui effectue un comptage long. Je voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur n'importe quelle touche, soit par clic sur un bouton "stop" associé à une macro qui arrête celle du comptage. Merci pour votre aide Bernard
désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses conseils ; premiers pas dans une liste de diffusion !
Bonjour
En théorie la touche Echap devrait faire l'affaire.
Ceci étant pour être sûr, ajoute un
Application.EnableCancelKey = xlInterrupt
au début de ta macro
Cordialement
Pascal
"Bernard H" <b.hamonic@wanadoo.fr> a écrit dans le message de
news:uTdEr9t0EHA.2688@TK2MSFTNGP09.phx.gbl...
Bonjour,
Ma feuille de calcul utilise une macro qui effectue un comptage long. Je
voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur
n'importe quelle touche, soit par clic sur un bouton "stop" associé à une
macro qui arrête celle du comptage.
Merci pour votre aide
Bernard
désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses
conseils ; premiers pas dans une liste de diffusion !
Bonjour En théorie la touche Echap devrait faire l'affaire. Ceci étant pour être sûr, ajoute un Application.EnableCancelKey = xlInterrupt au début de ta macro Cordialement Pascal
"Bernard H" a écrit dans le message de news: Bonjour, Ma feuille de calcul utilise une macro qui effectue un comptage long. Je voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur n'importe quelle touche, soit par clic sur un bouton "stop" associé à une macro qui arrête celle du comptage. Merci pour votre aide Bernard
désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses conseils ; premiers pas dans une liste de diffusion !
gilbert
Bonjour
essaie ceci
Sub interrompre() On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour annuler" For x = 1 To 10000000 [a1] = x Next x
handleCancel: If Err = 18 Then MsgBox "Vous avez annulé" End If End Sub
salutations
Gilbert "Bernard H" a écrit dans le message de news: Bonjour, Ma feuille de calcul utilise une macro qui effectue un comptage long. Je voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur n'importe quelle touche, soit par clic sur un bouton "stop" associé à une macro qui arrête celle du comptage. Merci pour votre aide Bernard
désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses conseils ; premiers pas dans une liste de diffusion !
Bonjour
essaie ceci
Sub interrompre()
On Error GoTo handleCancel
Application.EnableCancelKey = xlErrorHandler
MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour
annuler"
For x = 1 To 10000000
[a1] = x
Next x
handleCancel:
If Err = 18 Then
MsgBox "Vous avez annulé"
End If
End Sub
salutations
Gilbert
"Bernard H" <b.hamonic@wanadoo.fr> a écrit dans le message de
news:uTdEr9t0EHA.2688@TK2MSFTNGP09.phx.gbl...
Bonjour,
Ma feuille de calcul utilise une macro qui effectue un comptage long. Je
voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur
n'importe quelle touche, soit par clic sur un bouton "stop" associé à une
macro qui arrête celle du comptage.
Merci pour votre aide
Bernard
désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses
conseils ; premiers pas dans une liste de diffusion !
Sub interrompre() On Error GoTo handleCancel Application.EnableCancelKey = xlErrorHandler MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour annuler" For x = 1 To 10000000 [a1] = x Next x
handleCancel: If Err = 18 Then MsgBox "Vous avez annulé" End If End Sub
salutations
Gilbert "Bernard H" a écrit dans le message de news: Bonjour, Ma feuille de calcul utilise une macro qui effectue un comptage long. Je voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur n'importe quelle touche, soit par clic sur un bouton "stop" associé à une macro qui arrête celle du comptage. Merci pour votre aide Bernard
désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses conseils ; premiers pas dans une liste de diffusion !
Bernard H
Merci pour la solution qui fonctionne bien. Pour poursuivre dans mon application, j'aimerais bien pouvoir faire une pause dans ma macro de comptage, ..et repartir avec même la valeur, sans réinitialiser. Si tu as une piste, grand merci. Bernard
"gilbert" a écrit dans le message de news: | Bonjour | | essaie ceci | | Sub interrompre() | On Error GoTo handleCancel | Application.EnableCancelKey = xlErrorHandler | MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour | annuler" | For x = 1 To 10000000 | [a1] = x | Next x | | handleCancel: | If Err = 18 Then | MsgBox "Vous avez annulé" | End If | End Sub | | | salutations | | Gilbert | "Bernard H" a écrit dans le message de | news: | Bonjour, | Ma feuille de calcul utilise une macro qui effectue un comptage long. Je | voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur | n'importe quelle touche, soit par clic sur un bouton "stop" associé à une | macro qui arrête celle du comptage. | Merci pour votre aide | Bernard | | désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses | conseils ; premiers pas dans une liste de diffusion ! | |
Merci pour la solution qui fonctionne bien.
Pour poursuivre dans mon application, j'aimerais bien pouvoir faire une pause dans ma macro de comptage, ..et repartir avec même la valeur, sans réinitialiser.
Si tu as une piste, grand merci.
Bernard
"gilbert" <stpspamgilbert.roinel@wanadoo.fr> a écrit dans le message de news:uZ5NANv0EHA.3820@TK2MSFTNGP11.phx.gbl...
| Bonjour
|
| essaie ceci
|
| Sub interrompre()
| On Error GoTo handleCancel
| Application.EnableCancelKey = xlErrorHandler
| MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour
| annuler"
| For x = 1 To 10000000
| [a1] = x
| Next x
|
| handleCancel:
| If Err = 18 Then
| MsgBox "Vous avez annulé"
| End If
| End Sub
|
|
| salutations
|
| Gilbert
| "Bernard H" <b.hamonic@wanadoo.fr> a écrit dans le message de
| news:uTdEr9t0EHA.2688@TK2MSFTNGP09.phx.gbl...
| Bonjour,
| Ma feuille de calcul utilise une macro qui effectue un comptage long. Je
| voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur
| n'importe quelle touche, soit par clic sur un bouton "stop" associé à une
| macro qui arrête celle du comptage.
| Merci pour votre aide
| Bernard
|
| désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses
| conseils ; premiers pas dans une liste de diffusion !
|
|
Merci pour la solution qui fonctionne bien. Pour poursuivre dans mon application, j'aimerais bien pouvoir faire une pause dans ma macro de comptage, ..et repartir avec même la valeur, sans réinitialiser. Si tu as une piste, grand merci. Bernard
"gilbert" a écrit dans le message de news: | Bonjour | | essaie ceci | | Sub interrompre() | On Error GoTo handleCancel | Application.EnableCancelKey = xlErrorHandler | MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour | annuler" | For x = 1 To 10000000 | [a1] = x | Next x | | handleCancel: | If Err = 18 Then | MsgBox "Vous avez annulé" | End If | End Sub | | | salutations | | Gilbert | "Bernard H" a écrit dans le message de | news: | Bonjour, | Ma feuille de calcul utilise une macro qui effectue un comptage long. Je | voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur | n'importe quelle touche, soit par clic sur un bouton "stop" associé à une | macro qui arrête celle du comptage. | Merci pour votre aide | Bernard | | désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses | conseils ; premiers pas dans une liste de diffusion ! | |
gilbert
Bonjour
il suffit de savoir ou en était la variable x au moment de l' arrêt (ici valeur de la cellule [a1] et de repartir sur une boucle for par exemple : tu peux au moment de l'arrêt faire apparaître un bouton de reprise du compte
'ici tu mets un bouton dans la feuil et tu lui mets le code suivant
Private Sub CommandButton1_Click() On Error GoTo handleCancel Feuil1.CommandButton1.Visible = False Application.EnableCancelKey = xlErrorHandler i = [a1].Value For x = i To 1000000 [a1] = x Next x handleCancel: If Err = 18 Then MsgBox "Vous avez annulé" Feuil1.CommandButton1.Visible = True End If End Sub
'et la dans un module standard le code suivant et tu lances la macro
Sub interrompre() On Error GoTo handleCancel Feuil1.CommandButton1.Visible = False Application.EnableCancelKey = xlErrorHandler MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour annuler" For x = 1 To 1000000 [a1] = x Next x
handleCancel: If Err = 18 Then MsgBox "Vous avez annulé" Feuil1.CommandButton1.Visible = True End If End Sub
salutations
Gilbert
"Bernard H" a écrit dans le message de news: Merci pour la solution qui fonctionne bien. Pour poursuivre dans mon application, j'aimerais bien pouvoir faire une pause dans ma macro de comptage, ..et repartir avec même la valeur, sans réinitialiser. Si tu as une piste, grand merci. Bernard
"gilbert" a écrit dans le message de news: | Bonjour | | essaie ceci | | Sub interrompre() | On Error GoTo handleCancel | Application.EnableCancelKey = xlErrorHandler | MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour | annuler" | For x = 1 To 10000000 | [a1] = x | Next x | | handleCancel: | If Err = 18 Then | MsgBox "Vous avez annulé" | End If | End Sub | | | salutations | | Gilbert | "Bernard H" a écrit dans le message de | news: | Bonjour, | Ma feuille de calcul utilise une macro qui effectue un comptage long. Je | voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur | n'importe quelle touche, soit par clic sur un bouton "stop" associé à une | macro qui arrête celle du comptage. | Merci pour votre aide | Bernard | | désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses | conseils ; premiers pas dans une liste de diffusion ! | |
Bonjour
il suffit de savoir ou en était la variable x au moment de l' arrêt (ici
valeur de la cellule [a1] et de repartir sur une boucle for par exemple :
tu peux au moment de l'arrêt faire apparaître un bouton de reprise du compte
'ici tu mets un bouton dans la feuil et tu lui mets le code suivant
Private Sub CommandButton1_Click()
On Error GoTo handleCancel
Feuil1.CommandButton1.Visible = False
Application.EnableCancelKey = xlErrorHandler
i = [a1].Value
For x = i To 1000000
[a1] = x
Next x
handleCancel:
If Err = 18 Then
MsgBox "Vous avez annulé"
Feuil1.CommandButton1.Visible = True
End If
End Sub
'et la dans un module standard le code suivant et tu lances la macro
Sub interrompre()
On Error GoTo handleCancel
Feuil1.CommandButton1.Visible = False
Application.EnableCancelKey = xlErrorHandler
MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour
annuler"
For x = 1 To 1000000
[a1] = x
Next x
handleCancel:
If Err = 18 Then
MsgBox "Vous avez annulé"
Feuil1.CommandButton1.Visible = True
End If
End Sub
salutations
Gilbert
"Bernard H" <b.hamonic@wanadoo.fr> a écrit dans le message de
news:OFO82Yz0EHA.2016@TK2MSFTNGP15.phx.gbl...
Merci pour la solution qui fonctionne bien.
Pour poursuivre dans mon application, j'aimerais bien pouvoir faire une
pause dans ma macro de comptage, ..et repartir avec même la valeur, sans
réinitialiser.
Si tu as une piste, grand merci.
Bernard
"gilbert" <stpspamgilbert.roinel@wanadoo.fr> a écrit dans le message de
news:uZ5NANv0EHA.3820@TK2MSFTNGP11.phx.gbl...
| Bonjour
|
| essaie ceci
|
| Sub interrompre()
| On Error GoTo handleCancel
| Application.EnableCancelKey = xlErrorHandler
| MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour
| annuler"
| For x = 1 To 10000000
| [a1] = x
| Next x
|
| handleCancel:
| If Err = 18 Then
| MsgBox "Vous avez annulé"
| End If
| End Sub
|
|
| salutations
|
| Gilbert
| "Bernard H" <b.hamonic@wanadoo.fr> a écrit dans le message de
| news:uTdEr9t0EHA.2688@TK2MSFTNGP09.phx.gbl...
| Bonjour,
| Ma feuille de calcul utilise une macro qui effectue un comptage long. Je
| voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur
| n'importe quelle touche, soit par clic sur un bouton "stop" associé à une
| macro qui arrête celle du comptage.
| Merci pour votre aide
| Bernard
|
| désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses
| conseils ; premiers pas dans une liste de diffusion !
|
|
il suffit de savoir ou en était la variable x au moment de l' arrêt (ici valeur de la cellule [a1] et de repartir sur une boucle for par exemple : tu peux au moment de l'arrêt faire apparaître un bouton de reprise du compte
'ici tu mets un bouton dans la feuil et tu lui mets le code suivant
Private Sub CommandButton1_Click() On Error GoTo handleCancel Feuil1.CommandButton1.Visible = False Application.EnableCancelKey = xlErrorHandler i = [a1].Value For x = i To 1000000 [a1] = x Next x handleCancel: If Err = 18 Then MsgBox "Vous avez annulé" Feuil1.CommandButton1.Visible = True End If End Sub
'et la dans un module standard le code suivant et tu lances la macro
Sub interrompre() On Error GoTo handleCancel Feuil1.CommandButton1.Visible = False Application.EnableCancelKey = xlErrorHandler MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour annuler" For x = 1 To 1000000 [a1] = x Next x
handleCancel: If Err = 18 Then MsgBox "Vous avez annulé" Feuil1.CommandButton1.Visible = True End If End Sub
salutations
Gilbert
"Bernard H" a écrit dans le message de news: Merci pour la solution qui fonctionne bien. Pour poursuivre dans mon application, j'aimerais bien pouvoir faire une pause dans ma macro de comptage, ..et repartir avec même la valeur, sans réinitialiser. Si tu as une piste, grand merci. Bernard
"gilbert" a écrit dans le message de news: | Bonjour | | essaie ceci | | Sub interrompre() | On Error GoTo handleCancel | Application.EnableCancelKey = xlErrorHandler | MsgBox "Cela peut durer pendant une longue période : appuyez ESC pour | annuler" | For x = 1 To 10000000 | [a1] = x | Next x | | handleCancel: | If Err = 18 Then | MsgBox "Vous avez annulé" | End If | End Sub | | | salutations | | Gilbert | "Bernard H" a écrit dans le message de | news: | Bonjour, | Ma feuille de calcul utilise une macro qui effectue un comptage long. Je | voudrais que l'utilisateur puisse arrêter ce comptage soit par appui sur | n'importe quelle touche, soit par clic sur un bouton "stop" associé à une | macro qui arrête celle du comptage. | Merci pour votre aide | Bernard | | désolé pour les deux fils que j'ai perturbé et merci à Modeste pour ses | conseils ; premiers pas dans une liste de diffusion ! | |