Stopper exécution macro VBA pour rechercher erreur dans code
Bonjour,
dans l’exécution d’une MACRO en VBA derrière une feuille de calculs, devant donner des résultats sous la forme de différents tableaux apparaissant dans la feuille, je constate l’apparition inattendue de certaines valeurs dans des cellules au cours du calcul . Il ne peut s’agir que d’une erreur de programmation au niveau de l’édition des résultats dans les cellules des tableaux concernés.
Mais je n’arrive pas à identifier cette erreur par l’examen du programme VBA. Je voudrais donc stopper automatiquement l’exécution de la macro au moment précis où la valeur indésirable est inscrite dans la cellule en question , et dont l’adresse est connue, disons « E17 » ou Cells(17,5). Cela me permettra de voir où est l’erreur dans le code, si la ligne responsable est bien indiquée . J’ai essayé d’insérer dans le code un test sur la valeur de la cellule rebelle ( if Cells(17,5)<> « » then stop …): cela fonctionne mais ne permet pas de stopper la macro au moment précis du passage de la valeur dans la cellule. Je voudrais donc placer dans une autre cellule non utilisée disons « B2 » une fonction déclenchant l’arrêt de la macro dès que la cellule « E17 » recevra une valeur numérique. Mais la fonction ( si(…) ;… ;…) ne me paraît pas indiquée pour cette manip , ou comment procéder pour arrêter la macro dès l'écriture de la valeur indésirable dans la cellule. Voyez-vous comment faire ? en résumé comment stopper un calcul dès l’apparition d’une valeur donnée dans une cellule et exactement à l’instant où elle est écrite . Merci pour votre aide.
stopper VBA sur valeur cellule
Bonjour Menhir, j'ai essayé en utilisant cette fenêtre "espion" mais cela ne stoppe pas l'exécution de la marcro.
Comment faire pour stopper immédiatement dès que la cellule est modifiée en espérant que la ligne du code responsable de cette écriture sera indiquée . Merci .
stopper VBA sur valeur passée dans feuille
je comprends qu'il faudrait entrer dans la fenêtre "espion " l'adresse d'une cellule comportant une formule ... mais dans mon cas la cellule à "espionner" en question , ne contient aucune formule et est directement alimentée par la macro... Mon idée était de stopper la macro dès que cette cellule est modifiée , puis d'aller voir dans le code de la macro , à quel endroit se trouve l'instruction erronée ( en espérant que la ligne de code concernée est bien surlignée...).
Mais tu as peut-être une autre solution ? je ne suis pas familiarisé avec tous ces outils de recherche et de vérification disponibles en VBA...
Sinon il ne me reste qu'à insérer des lignes "stop" après chaque instruction du programme VBA et à voir le résultat après chaque relancement , mais cela est irréaliste ... je n'aurai pas la patience... autant refaire tout le programme ! mais je n'aurai pas non plus la patience , ni la capacité, car cela remonte à plusieurs années , dans mon jeune temps .