Botie avec bouton annuler lors de l'éxécution d'une macro
2 réponses
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
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
Misange
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" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.excelabo.net/excel/tempoprogression.php
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
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
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" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.excelabo.net/excel/tempoprogression.php
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
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" a écrit dans le 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
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" <AlexStPierre@discussions.microsoft.com> a écrit dans le
message de news: 246DBB3B-ECA1-4453-9B03-81387BC4A46C@microsoft.com...
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
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" a écrit dans le 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