Bonjour,
J'ai remarqué que lorsque j'exécute des macros Excel avec des boucles de balayage de plages de cellules, une première pression sur la touche Echap n'arrête pas l'éxecution, mais accélère considérablement celle-ci (ça se voit en mettant des debug.print pour tracer le numéro de ligne courante de la feuille balayée dans la boucle For).
Il faut appuyer une 2è fois sur Echap pour arrêter la macro et voir apparaître la fenêtre proposant le deboggage.
=> 1ère question : Avez-vous une explication ?
Le problème que je rencontre actuellement est sur une séquence macro particulière : balayage d'une plage de lignes ds la feuille 1 pour récupérer par .Find dans une feuille 2 une valeur en correspondance -> ex. pour meilleure compréhension :
- Feuille 1 contient un référentiel d'articles avec un code et un prix
- Feuille 2 contient une commande avec les codes articles
Je veux, par une macro qui balaie les lignes de la commande, écrire dans Feuille 2 en face de chaque code article le prix qui se trouve dans Feuille 1
Tant que j'exécute la macro en pas à pas par F8, tout va bien. Si je lance la macro par F5, tant que je n'appuie pas sur Echap, tout va bien, mais c'est lent. Si j'appuie sur Echap (avec l'effet escompté d'accélération "mystique" évoqué ci-dessus), alors ça accélère vachement, mais j'ai l'impression qu'il ne fait plus le .Find, comme si il sautait une partie du code : il passe avant et après (vérifié par des debug.print avant et après le .Find).
Quel est ce mystère ?
Merci de vos éclairages !
J'ai remarqué que lorsque j'exécute des macros Excel avec des boucles de balayage de plages de cellules, une première pression sur la touche Echap n'arrête pas l'éxecution, mais accélère considérablement celle-ci (ça se voit en mettant des debug.print pour tracer le numéro de ligne courante de la feuille balayée dans la boucle For).
Il faut appuyer une 2è fois sur Echap pour arrêter la macro et voir apparaître la fenêtre proposant le deboggage.
=> 1ère question : Avez-vous une explication ?
Le problème que je rencontre actuellement est sur une séquence macro particulière : balayage d'une plage de lignes ds la feuille 1 pour récupérer par .Find dans une feuille 2 une valeur en correspondance -> ex. pour meilleure compréhension :
- Feuille 1 contient un référentiel d'articles avec un code et un prix
- Feuille 2 contient une commande avec les codes articles
Je veux, par une macro qui balaie les lignes de la commande, écrire dans Feuille 2 en face de chaque code article le prix qui se trouve dans Feuille 1
Tant que j'exécute la macro en pas à pas par F8, tout va bien. Si je lance la macro par F5, tant que je n'appuie pas sur Echap, tout va bien, mais c'est lent. Si j'appuie sur Echap (avec l'effet escompté d'accélération "mystique" évoqué ci-dessus), alors ça accélère vachement, mais j'ai l'impression qu'il ne fait plus le .Find, comme si il sautait une partie du code : il passe avant et après (vérifié par des debug.print avant et après le .Find).
Quel est ce mystère ?
Merci de vos éclairages !