Re: [fr-users] Macro: debug

2015-12-07 Par sujet Jacques Guilleron

Le 07/12/2015 12:50, Michel Rudelle a écrit :

Bonjour Claude


-Message d'origine-
De : claude [mailto:pref-open-off...@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+unsubscr...@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



Re: Re: [fr-users] Macro: debug

2015-12-07 Par sujet claude

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.guille...@orange.fr>
*Pour : *Michel Rudelle <rudelle.mic...@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-off...@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+unsubscr...@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



[fr-users] Macro: debug

2015-12-07 Par sujet claude

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 ?


merci pour votre aide

Claude

--
Envoyez un mail à users+unsubscr...@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


RE: [fr-users] Macro: debug

2015-12-07 Par sujet Michel Rudelle
Bonjour Claude

> -Message d'origine-
> De : claude [mailto:pref-open-off...@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


-- 
Envoyez un mail à users+unsubscr...@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



Re: RE: [fr-users] Macro: debug

2015-12-07 Par sujet claude

Merci beaucoup. Simple et efficace mais encore fallait-il y penser !!!

Claude

 Message original 
*Sujet: *[INTERNET] RE: [fr-users] Macro: debug
*De : *Michel Rudelle <rudelle.mic...@gmail.com>
*Pour : *'libreoffice' <users@fr.libreoffice.org>
*Date : *07/12/2015 12:50

Bonjour Claude


-Message d'origine-
De : claude [mailto:pref-open-off...@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






--
Envoyez un mail à users+unsubscr...@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