

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
5 messages in org.openoffice.fr.progRe: [prog] Listener| From | Sent On | Attachments |
|---|---|---|
| Michel Grentzinger | May 4, 2007 8:35 am | |
| Bernard Marcelly | May 4, 2007 11:28 am | |
| Michel Grentzinger | May 4, 2007 12:21 pm | |
| Francois Gatto | May 4, 2007 8:57 pm | |
| Michel Grentzinger | May 4, 2007 10:15 pm |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [prog] Listener | Actions... |
|---|---|---|
| From: | Michel Grentzinger (mic....@online.fr) | |
| Date: | May 4, 2007 10:15:39 pm | |
| List: | org.openoffice.fr.prog | |
Le samedi 5 mai 2007 05:57, Francois Gatto a écrit :
Mon code fonctionne mais le message "Feuille modifiée !" ne disparait qu'au bout de 7 ou 8 clics sur OK. D'où vient l'erreur ?
Bonsoir, Peut-être pas d'erreur, ça pourrait être une succession d'évènements de modification. Incrémente un compteur en variable Private pour voir cela. Essaie aussi en modifiant une cellule non référencée ailleurs.
J'ai un peu modifié la macro lancée en cas de modification :
Sub perf_modified(event) print "Feuille modifiée ! Modification n° " & Nombre msgbox "Nouvelle valeur "+str(event.Source.Value) Nombre = Nombre + 1 End Sub
Le nombre n'est jamais incrémenté mais le msgbox est bien affiché à la fin avec la bonne valeur.
Passe le nombre en global
Global Nombre As Integer
J'avais mis Private Nombre As Integer mais visiblement ça se suffisait pas. Pourtant ma variable reste bien dans le même module...
Mais j'ai toujours plusieurs fois le print !!
Comme précisé par Bernard Marcelly la macro initiale ne semble pas être en cause.
Le probleme des ecouteurs a toujours été leur consommation et une interférence plus ou moins grande avec les éléments manipulés (ie : plus d'un classeur ouvert).
.
Ce matin, la macro fonctionne correctement : j'ai utilisé ecouteur = CreateUnoListener("perf_", "com.sun.star.chart.XChartDataChangeEventListener") Feuille.addChartDataChangeEventListener(ecouteur)
Remarque : c'est bien plus lent avec cette technique (1 seconde environ entre la validation et l'apparition de la boite).
Mon problème était sans doute lié à la macro qui restait à l'écoute pendant que je la modifiais et la relançais... Elle était donc lancée plusieurs fois j'ai l'impression.
Au stade actuel il me parait ne devoir les utiliser qu'avec grande parcimonie
Existe-t-il une autre technique pour lancer une action en cas de modification d'une cellule ou d'une plage ?
-- Michel Grentzinger OpenPGP key ID : B2BAFAFA Available on http://www.keyserver.net







