Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Bernard91
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

Bernard91

Guest
Bonjour le Forum,
J'aimerais un coup de pouce de votre part.
J'ai une macro qui consiste à charger les données d'une feuille dans une listbox. Cela peut prendre quelques secondes
j'aimerais avoir la possibilité de stopper et de sortir de l'exécution de la macro par un bouton.
Faut-il prévoir le fonctionnemnt du bouton dans la macro? Ou le bouton peut agir sur la macro?
Par la même occasion est il possible d'afficher le temps de traitement attendu?
Merci de vos lumières
 
Re : Arret macro

Bonjour Bernard,
-pour le bouton pause ou stop de la macro, je pense que c'est faisable mais je sais pas comment! (je regarde un peu et te tient au courant).
-pour le temps d'execution, principe d'une progressbar, il faut connaitre la taille du traitement à effectuer (nbre de lignes ou autre), vas-voir sur le wiki tu auras peut-etre une solution :
https://www.excel-downloads.com/threads/ref-wiki-2-de-michelxld-ce-qui-touche-aux-userform.92357/
(la partie sur les progressbar)
ou plus précisément :
https://www.excel-downloads.com/threads/demo-userform-furtif-progressbar-animated-gif.34092/

bonne chance.
 
Re : Arret macro

Bonjour Bernard

comme ce sont des procédures évenementielles, je pense que si tu cliques sur ton bouton arrêter, la procédure qui est associée à ce bouton ne se mettra en route qu'après que le code de chargement de ta listbox soit fini.

Si cela ne dure que quelques secondes, est-ce si important de la stopper

ou peut-etre filtrer/sélectionner les données à mettre dans la listbox
 
Re : Arret macro

Bonsoir Bernard91, Shock, mutzik,

En complément, si tu veux que l'utilisateur puisse sortir "proprement" lors de l'appui sur la touche Echap (sans obtenir la boite de dialogue "Exécution Interrompue" et la proposition de Débogage VBA), tu peux utiliser la propriété EnableCancelKey de l'objet Application comme suit :

Code:
[SIZE=2]Sub Traitement()
[COLOR=navy]Dim [/COLOR]C[COLOR=navy] As [/COLOR]Range
      ActiveSheet.Cells.ClearContents
      [COLOR=green]'Mise en place du gestionnaire d'erreur[/COLOR]
      [COLOR=navy]On Error GoTo[/COLOR] Erreur
      Application.EnableCancelKey = xl[COLOR=navy]Error[/COLOR]Handler
      [COLOR=green]'Boucle de traitement (interruption par la touche Echap)[/COLOR]
      [COLOR=navy]For Each[/COLOR] C[COLOR=navy] In [/COLOR]ActiveSheet.Cells
            C.Value = "X"
      [COLOR=navy]Next[/COLOR] C
[COLOR=navy]Exit Sub[/COLOR]

Erreur:
      [COLOR=navy]If [/COLOR]Err = 18 [COLOR=navy]Then[/COLOR]            [COLOR=green]'La touche Echap a été frappée[/COLOR]
            [COLOR=navy]If [/COLOR]MsgBox("Je suis en attente !" & vbLf & "Dois-je continuer ?", vbYesNo) = vbYes [COLOR=navy]Then[/COLOR]
                  [COLOR=navy]Resume[/COLOR]
            [COLOR=navy]End If[/COLOR]
      [COLOR=navy]End If
End[/COLOR] Sub[/SIZE]
En exemple, ce code impose la valeur "X" dans chaque cellule de la feuille active jusqu'à ce que tu appuies sur la touche Echap.
Cette interruption déclenche une erreur 18 controlée par le gestionnaire d'erreur mis en place. Cela permet d'interrompre proprement une boucle sans interrompre pour autant le programme. On peut ainsi orienter le code sur un autre traitement si on le souhaite.

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

A
Réponses
37
Affichages
4 K
asso78Lim
A
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…