Botie avec bouton annuler lors de l'éxécution d'une macro

Le
Alex St-Pierre
Bonjour!
J'aimerais afficher une boite dans lequel il y a aurait une case blanche qui
indique la progression du programme ainsi qu'un bouton "annuler" permetant à
l'utilisateur d'arrêter la macro n'importe quand.
Merci !
Alex
--
Alex St-Pierre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Misange
Le #4493391
Bonjour,
Pour les barres de progression, tu en as toute une tripotée ici, à toi
de choisir celle qui te convient le mieux.
http://www.excelabo.net/excel/tempoprogression.php

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour!
J'aimerais afficher une boite dans lequel il y a aurait une case blanche qui
indique la progression du programme ainsi qu'un bouton "annuler" permetant à
l'utilisateur d'arrêter la macro n'importe quand.
Merci !
Alex


tissot.emmanuel
Le #4493381
Bonjour,

En complément à la réponse de Misange, une autre technique consiste à
utiliser la barre d'état pour informer l'utilisateur du déroulement de la
macro et la touche Echap pour qu'il puisse l'interrompre. C'est plus facile
à faire et ca ralentit moins le code mais c'est moins joli.

Public Sub MaMacro()
Dim x As Long
Application.EnableCancelKey = xlErrorHandler
On Error GoTo Escape
Application.StatusBar = "Message pour l'utilisateur"
Do
x = x + 1
Loop Until x = 10 ^ 8
RestaurerEchapStatusBar
Exit Sub
Escape:
If Err.Number = 18 Then 'L'utilisateur a appuye sur Echap
If MsgBox("x=" & x & " Arréter la macro?", vbYesNo + vbQuestion) =
vbYes Then
RestaurerEchapStatusBar
Else
Resume 'Reprend le cours du programme
End If
Else
'Autre gestion d'erreur eventuelle
End If
End Sub

Private Sub RestaurerEchapStatusBar()
With Application
.EnableCancelKey = xlInterrupt
.StatusBar = False
End With
End Sub

Cordialement,

Manu/


"Alex St-Pierre" message de news:
Bonjour!
J'aimerais afficher une boite dans lequel il y a aurait une case blanche
qui
indique la progression du programme ainsi qu'un bouton "annuler" permetant
à
l'utilisateur d'arrêter la macro n'importe quand.
Merci !
Alex
--
Alex St-Pierre


Publicité
Poster une réponse
Anonyme