Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Boucle interminable ( prémisses au mouvement perpétuel ? )

  • Initiateur de la discussion Initiateur de la discussion Pounet95
  • 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 !

Pounet95

XLDnaute Occasionnel
Bonjour,
J'espère que vous aurez, malgré les contraintes, passé un bon WE Pascal.
Je sais depuis hier soir 20h et des broquilles que je vais encore avoir du temps avant de mettre un bout d'orteil dehors, mais plutôt que d'attendre la fin du phénomène, je préférerais que vous me donniez l'astuce, si elle existe, pour stopper l'exécution d'une macro qui est partie "en vrille" suite à un mauvais code et/ou lancée par erreur à la place d'un pas à pas.
Pour le moment, j'en suis ) Ctrl + Alt +Supp qui me permet d'accéder au Gestionnaire des tâches et donc d'arrêter la session Excel en cours.
y aurait-il moins brutal ?
Merci de me dire

Oups : j'ai oublié de préciser que Ctrl C, Ctrl Q, Ctrl Pause restent inactifs
Quant à la recherche avec la liste à droite, bof !!!!
 
Bonjour,

A ma connaissance il n'y a pas d'autre solution que le CTRL+ALT+SUPPR.
Si ce n'est que prévoir, dans la phase de test, un compteur (une variable integer) incrémenté dans la boucle. Une fois atteint un nombre d'itérations arbitraire mais suffisant sortir.
Exemple :
VB:
Dim cpt As Integer
Do While condition And cpt < 1000
    ' .... Actions
    ' incrémentation compteur
     cpt = cpt + 1
Loop

Au pire si la condition n'est jamais fausse, la boucle s'arrêtera à 999 itérations

cordialement
 
Bonjour Roblochon,
Merci de ta réponse rapide.
Comme je ne sais pas exactement où ça démarre, il faut donc que je mette cela dans une procédure dont l'appel sera fait dans des endroits du code principal susceptibles d'être la cause du mal.
Un truc du genre :
VB:
Sub Principale()
      dim Source as string     'nom de l'endroit soupçonné d'être l'origine
      'le code
       Source="Ici"
      Compteur_Boucles Source
      .......
       Source="Là"
      Compteur_Boucles Source
     .... etc
End Sub[
/CODE]
 
Bonjour Roblochon
Ta solution n 'est pas mauvaise, mais a un gros défaut : celui de déterminer à l'avance un nombre maximum d'itérations.
On utilise souvent une variable booléenne générale dont on change la valeur au clic sur un bouton et, au sein de la boucle un Doevents pour permettre d'évaluer l'état de cette variable et quitter au besoin la boucle.
Cette méthode est toutefois très chronophage en l'état. A ce point chronophage que je suis en train de rédiger à mes moments libres (j'en ai peu en ce moment) un petit "tuto" à propos de la bonne et de la mauvaise utilisation de cette méthode. 😉
 
Bonjour jmfmarques ( je n'ai pas le droit au Bonjour? )
Même si la solution a un gros défaut, voire plus ( nbre d'itérations fixé, chronophage, et d'autres peut-être ?), elle a au minima le mérite de répondre à un problème, celui où potentiellement il y a risque que ça dure plus longtemps encore. Donc à traiter en préventif, non ?
J'ai hâte de voir ton tuto !
 
Bonjour Pounet95
La méthode (que je conteste d'ailleurs en l'état) est simple. En voilà le mécanisme :
- Une variable booléenne générale genre :
Private toto as boolean
- un bouton de commande avec ce code au clic :
toto = true
- et dans la boucle (par exemble une boucle for to next):
.....
.....
doevents
If toto = true then exit fo
r
...
...
 
Re,

N'ai-je pas dis :
Phase pendant laquelle il est bon de perdre du temps.

A chacun ses méthodes, qu'il propose et que le demandeur peut choisir.

Cordialement
Je vais te parler, moi, d'un exemple de cas totalement hors "test" où l'utilisateur devra et pourra décider de mettre un terme en pleine exécution :
-celui (par exemple et entre autre) de tentatives de connexions en boucle jusqu'à réussite ou abandon, sans pour autant sortir en mode debug. 😉
Il faut toujours se garder de conclusions trop rapides.
 
Re,

@jmfmarques, certainement intéressant mais je ne suis pas là pour faire de la théorie. Ce qui m’intéresse est de savoir si @Pounet95 s'en sort.

cordialement
J'ai donné à cet effet toutes les indications nécessaires en mon message N° 10, non ?
Et suivra très bientôt un petit tuto pour limiter de manière très significative le caractère chronophage de cette méthode.
Que souhaites-tu de plus ?
 
Ne t'en fais pas, Roblochon, j'y arriverai, à l'usure peut-être, mais je l'aurais un jour !! (pub)
Pour ne pas envenimer les choses ( il y a assez de ma macro qui part en vrille !), je vais clore ce fil et faire ma patouille avec tout ce que vous dites.
Au passage, je viens de me rendre compte que le fil de jmfmarques ( #10) vient seulement d'apparaître alors qu'il n'était pas présent lors de précédents rafraîchissements ????
C'est d'autant plus "con" qu'il y avait réparation de "l'oubli" signalé dans mon fil #8
Au prochain sujet donc
Merci à tous
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…