5 messages in org.openoffice.fr.progRe: [prog] Listener
FromSent OnAttachments
Michel GrentzingerMay 4, 2007 8:35 am 
Bernard MarcellyMay 4, 2007 11:28 am 
Michel GrentzingerMay 4, 2007 12:21 pm 
Francois GattoMay 4, 2007 8:57 pm 
Michel GrentzingerMay 4, 2007 10:15 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] ListenerActions...
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 ?