Date: prev next · Thread: first prev next last
2015 Archives by date, by thread · List index


Bonjour,

Merci mais l'inconvénient avec les points d'arrêt c'est que il faut déjà avoir une idée de l'endroit où l'anomalie se produit surtout sur une macro qui est relativement longue avec un certain nombre de boucles et quelques appels de fonctions.

Dans mon cas, je n'en ai aucune idée.

L'astuce de Michel va me permettre de localiser la partie de code en cause.

Bonne fin de journée

Claude


-------- Message original --------
*Sujet: *[INTERNET] Re: [fr-users] Macro: debug
*De : *Jacques Guilleron <jacques.guilleron@orange.fr>
*Pour : *Michel Rudelle <rudelle.michel@gmail.com>, 'libreoffice' <users@fr.libreoffice.org>
*Date : *07/12/2015 15:27
Le 07/12/2015 12:50, Michel Rudelle a écrit :
Bonjour Claude

-----Message d'origine-----
De : claude [mailto:pref-open-office@haute-garonne.gouv.fr]
Envoyé : lundi 7 décembre 2015 10:51
À : libreoffice
Objet : [fr-users] Macro: debug

Bonjour,

J'ai un problème avec une macro qui fonctionne bien en version 4.1.6
mais qui en 4.3.4 modifie les coordonnées de certaines plages nommées.

Désolée, je ne peux publier le fichier ce serait trop compliqué de le
rendre anonyme. Et bien sur, je n'ai aucune possibilité de changer les
versions des postes de travail.

j'ai ajouté une variable qui contient l'adresse d'une plage incriminée
mais c'est extrêmement long de débugger en pas à pas.  Par contre,
existe-il un moyen de paramétrer le debug de façon à ce que l’exécution
s'arrête lorsque la variable est modifiée ?
Je ne connais pas de fonctionnalité faisant ça tout seul (mais je ne connais
pas tout).
J'imagine une solution un peu plus rapide que le pas à pas. Puisque tu
connais l'adresse initiale qui normalement ne devrait pas changer en cours
de programme:

1/ Mémoriser cette donnée initiale dans une autre variable

2/ créer une procédure de test qui lira l'adresse de la zone et la comparera
à la donnée initiale.

3/ dans cette procédure, faire le test de façon à ne passer sur une ligne
quelconque qu'en cas de modification - ligne sur laquelle tu mettras un
point d'arrêt.

4/ parsemer ton programme d'appels récurrents à cette procédure. Par
dichotomie tu devrais pourvoir isoler la partie du programme incriminée.

Cordialement,
Michel



Bonjour,

Il me semble qu'on peut réaliser ça avec les points d'arrêts.
En mettant le curseur au début de la ligne de code à examiner, on place un point d'arrêt soit par le bouton (Dés)Activer au-dessus de l'éditeur, soit par double-clic devant la ligne.
Un point marquera la ligne.
En lançant l'exécution, le code sera exécuté jusqu'à ce point d'arrêt.
On peut ensuite arrêter l'exécution du code, ou poursuivre, voire se mettre en pas à pas à partir de ce point.
Il y a les boutons nécessaires à ça.
On enlève le ou les points d'arrêt aussi facilement qu'on les a mis, soit par le bouton adéquat, soit par double-clic. Si on a mis de quoi examiner les variables avant le point d'arrêt, on a un moyen pratique
de connaître à tout moment l'état du code à cet endroit.

Cordialement,

Jacques


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus





--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.