[Résolu][Calc] SurveillanceFeuille (.oxt) sous LibreOffice

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

[Résolu][Calc] SurveillanceFeuille (.oxt) sous LibreOffice

Message par martinbrait »

Bonjour,


SUJET INITIAL:
[Calc] détecter les états de modifications de contenus des cellules avant, pendant, après
changé, en [Comment adapter l'extension WatchingWindow, pour LibreOffice ?]


Ca fait longtemps !

Comment feriez-vous pour capturer l'état de modification de cellules, à savoir :

différencier le nombre de cellules modifiées :

une cellule est modifié <> plusieurs cellules sont modifiées

différencier 3 étapes de modifications :
la cellule $A$1 est sélectionnée, et va peut-être subir une modification (sélection dans cellule)
la cellule $A$1 est sélectionnée, et subit actuellement une modification (saisie clavier dans cellule)
la cellule $A$1 vient d'être quittée, avec une modification / avec une suppression de contenu. (touche entrée dans cellule -> sortie cellule)

Code : Tout sélectionner

REM  *****  BASIC  *****

Sub Main

End Sub


Sub AvantModif()
MsgBox("Je vais être modifié",16+32,"EVENT 1")
End Sub


Sub EnCoursDeModif()
MsgBox("Je suis en train d'être modifié",16+32,"EVENT 2")
End Sub

Sub ApresModif()
MsgBox("Je viens  d'être modifié",16+32,"EVENT 3")
End Sub
Merci beaucoup pour votre aide, et à bientôt ! :D
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinbrait le 06 déc. 2017 17:23, modifié 8 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] intercepte avant, pendant, après modification cel

Message par Dude »

Salut,

Pas besoin de macro puisqu'il existe une extension qui surveille une feuille :
https://forum.openoffice.org/fr/forum/v ... 18&t=37681
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc] intercepte avant, pendant, après modification cel

Message par martinbrait »

Merci Dude,

Pile poil ce qu'il me faut, apparemment.
Surveiller un changement de valeur d'une cellule sur la feuille de calcul.

L'extension WatchingWindow fonctionne sur OOo 3.3 ou version ultérieure, car cette extension utilise une nouvelle fonctionnalité du volet des tâches peut être fournie par les extensions et le contrôle de la grille.
La version 0.4.X fonctionne sur Apache OpenOffice 3.4.
Utilisez la version 0.5 sur Apache OpenOffice 4.0.

Une fois cette extension installée (après le rechargement du composant Calc), l'entrée Affichage - Volet des tâches s'affiche dans le menu principal de la fenêtre Calc, choisissez-la pour ouvrir la fenêtre de surveillance.

Langues de l'interface utilisateur: anglais, japonais, russe, espagnol


'==========
'TUTORIEL :
'==========
WatchingWindow vous permet de vérifier le changement de valeur des cellules sur une feuille de calcul.

Usage
Fermer la fenêtre
Docker la fenêtre
Amarrer la fenêtre
Pour ajouter une nouvelle cellule surveillée
Retirer la cellule de veille
Tout mettre à jour
Déplacez le curseur sur la cellule de surveillance
Effacer la liste de surveillance
Ligne d'entrée
Réglage
Avertir lorsque certaines cellules vont être ajoutées
Afficher la ligne de saisie
Horloge système

Usage

Choisissez Affichage - Volet des tâches dans le menu principal si l'élément Volet des tâches ne s'affiche pas dans votre espace de travail. Choisissez la section Fenêtre d'observation dans le volet des tâches pour ouvrir la fenêtre de surveillance. Si vous ne trouvez pas la section Observation de la fenêtre, cliquez sur Afficher et sélectionnez la case à cocher Fenêtre de surveillance. Si vous ne voyez pas le menu Fenêtre d'observation dans le menu contextuel, l'installation de l'extension peut être cassée, réinstallez-la.

Si vous calculez et changez parfois la valeur de la cellule de surveillance, supprimez l'entrée de la liste ou masquer la fenêtre de surveillance. Si la fenêtre de surveillance est masquée, les modifications ne sont pas vérifiées. Voir Ancrez la fenêtre pour voir comment masquer la fenêtre.
Fermer la fenêtre

Cliquez sur x dans l'angle supérieur droit du volet des tâches.
Docker la fenêtre

Appuyez sur la touche Ctrl et double-cliquez sur l'espace vide entre Tâches et Affichage dans le volet des tâches. Si la fenêtre du volet des tâches est ancrée sur le côté de la fenêtre Calc, le bouton masquer et visible apparaît sur le séparateur entre l'espace de travail et le volet des tâches. Cliquez dessus pour modifier la visibilité du panneau des tâches.
Amarrer la fenêtre

Appuyez sur la touche Ctrl et double-cliquez sur l'espace vide entre Tâches et Affichage dans le volet des tâches. La fenêtre du volet des tâches est ancrée dans la position d'origine.
Pour ajouter une nouvelle cellule surveillée

Sélectionnez une cellule, une plage de cellules ou une collection de plages de cellules dont vous souhaitez afficher la valeur ou la formule sur la feuille, puis appuyez sur le bouton Ajouter du panneau de tâches Fenêtre de surveillance.
Retirer la cellule de veille

Choisissez une entrée pour regarder la cellule, cliquez sur le bouton Supprimer sur la fenêtre d'observation. Si vous souhaitez supprimer toute la montre, cliquez sur Option et choisissez Effacer dans le menu contextuel.
Tout mettre à jour

Si l'entrée surveillée affiche une valeur apparemment différente de la cellule d'origine, cliquez sur le bouton Tout mettre à jour. Par exemple, l'extension ne vérifie pas le changement de nom de la feuille et vous devez mettre à jour les entrées après le changement de nom. Toutefois, lorsque la cellule de surveillance est mise à jour avant la mise à jour manuelle, la cellule de surveillance affiche la valeur de collecte automatiquement.
Déplacez le curseur sur la cellule de surveillance

Pour afficher la cellule surveillée dans l'espace de travail, sélectionnez une entrée dans la liste de surveillance et cliquez sur le bouton Aller à la cellule. Vous pouvez également aller à la cellule en utilisant Aller à la cellule dans le menu contextuel de la grille. Plus facilement, double-cliquez sur l'entrée pour accéder à l'entrée.
Effacer la liste de surveillance

Pour supprimer toutes les entrées de la liste de surveillance, cliquez sur le bouton Option et choisissez Effacer dans le menu contextuel.
Ligne d'entrée

Si vous cochez l'entrée pour Input Line dans le menu Options, vous voyez la boîte d'édition sous les boutons de la fenêtre Watching. Vous pouvez modifier le contenu de l'entrée sélectionnée. Modifiez le contenu dans la zone d'édition et appuyez sur la touche Entrée pour appliquer la nouvelle valeur.
Réglage

Cliquez sur le bouton Option et choisissez Paramètres ... puis affiche la boîte de dialogue pour configurer la fenêtre de surveillance.
Avertir si certaines cellules vont être ajoutées

Si vous essayez d'ajouter une cellule de surveillance à la fois, l'extension confirme pour les ajouter tous. La valeur par défaut est 10.
Afficher la ligne de saisie

Si la case est cochée, la ligne d'entrée est affichée à l'heure de début.
HorlogeSysteme

Si le bureau prend en charge RDF au format de fichier ODS, la liste des montres peut être stockée dans le document en cours.
Je viens de télécharger l'extension. Hélas, ça plante... :( :( :( notification envoyée à hanyaruno, créateur de l'extension python.)
Pourriez-vous tester l'extension avec votre version OpenOffice / LibreOffice,
et confirmer à la suite de ce message les éventuels plantages ?

Merci par avance.
surveillancefeuillebug.JPG
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12230
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Issue][Calc] intercepte avant, pendant, après modif cel

Message par Bidouille »

Vous avez balisé avec [Issue] sans mentionner le n° du rapport concerné.
Merci de l'indiquer à la suite de ce message.
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 629
Inscription : 09 août 2017 22:15

Re: [Calc] intercepte avant, pendant, après modification cel

Message par Jurassic Pork »

hello,
martinbrait a écrit : Pourriez-vous tester l'extension avec votre version OpenOffice / LibreOffice,
c'est étonnant que tu ais pu installer l'extension car moi sous Libreoffice 5.2.7.2 sous windows 7 j'ai ce message :
WatchingWindow.png
Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Issue][Calc] intercepte avant, pendant, après modif cel

Message par martinbrait »

Bonjour Bidouille,
Il n'y a pas de numéro de rapport à proprement parler.
J'ai simplement contacté par messagerie le concepteur de l'extension python par mail,
pour évoquer les problèmes de compabilité.

Bonjour Jurassic Pork, le concepteur de l'extension,
indique qu'elle n'est pas encore prête pour une version
très récente d'open office.

J'ai eu ce retour en erreur après une installation sous la version LibreOffice version 4.3.6.2.0 Windows 7
Dernière modification par martinbrait le 21 nov. 2017 14:08, modifié 1 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12230
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Issue][Calc] intercepte avant, pendant, après modif cel

Message par Bidouille »

martinbrait a écrit :Il n'y a pas de numéro de rapport à proprement parler.
S'il n'y a pas de rapport, vous ne mettez pas [Issue].
Ce n'est quand même pas si difficile que ça à comprendre.
Je commence à avoir assez d'avoir à vous reprendre.
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc] intercepte avant, pendant, après modif cellule

Message par martinbrait »

Merci Bidouille,
Je suis tout nouveau avec les modules python.
Pas encore capable de reparamétrer le script PYTHON.
Du coup, comment serait la solution
100% OooBasic,
sans vous ennuyer ? :oops:

On a probablement intérêt à profiter de l'expertise de Pierre-Yves Samyn
https://forum.openoffice.org/fr/forum/v ... =9291#9291
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] intercepte avant, pendant, après modif cellule

Message par Hubert Lambert »

Bonjour,

Sur le dépôt github, on trouve une version 0.5.2 qui semble fonctionner pour AOO4+.
Moyennant une petite adaptation fournie par l'auteur lui-même dans un autre contexte (voir ici), l'extension semble fonctionnelle également sous LibO5+.
Je joins l'extension adaptée.
Cordialement

PS. L'adaptation consiste à ajouter, dans la classe WatchingWindowUIElement, une fonction getMinimalWidth (fonction ajoutée à l'interface XSidebarPanel dans l'API de LibreOffice5).
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc] intercepte avant, pendant, après modif cellule

Message par martinbrait »

Bonjour Hubert !
Hubert Lambert a écrit :
... consiste à ajouter, dans la classe WatchingWindowUIElement, une fonction getMinimalWidth (fonction ajoutée à l'interface XSidebarPanel dans l'API de LibreOffice5).
Hélas, ça ne me parle pas encore.
Un tutoriel pour expliciter cette fin de phrase serait parfait !
Dans quel emplacement/fichier vais-je trouver la classe WatchingWindowUIElement, sur mon installation LibreOffice ?
En tous cas, ce fichier est introuvable, parmi ceux des macros personnalisées python.

Serait-il plus judicieux de modifier quelques instructions dans l'extension WatchingWindow.oxt, elle-même ?
watching_window_3.JPG
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinbrait le 22 nov. 2017 21:09, modifié 2 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc] intercepte avant, pendant, après modif cellule

Message par Hubert Lambert »

Hubert Lambert a écrit :Je joins l'extension adaptée.
:roll:
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: [Calc] intercepte avant, pendant, après modif cellule

Message par martinbrait »

Merci Hubert,
Eurêka ! :D :D :D

@ JurassicPork : extension qui fonctionnera sous ta version LibreOffice
  • Ouvrir l'extension WatchingWindow-0.5.1.oxt
  • Editer le fichier WatchingWindow-0.5.1.oxt\pythonpath\pyww\element.py avec notepad++
  • chercher la classe class WatchingWindowUIElement()
  • ajouter à # XSidebarPanel, la fonction getMinimalWidth(), en fin de fichier

Code : Tout sélectionner

class WatchingWindowUIElement(unohelper.Base, XSidebarPanel, XUIElement, XToolPanel, XComponent):
...
...
...
    # XSidebarPanel
    def getHeightForWidth(self, width):
        return LayoutSize(0, -1, 0)
	# fonction ajoutée pour s'adapter à la nouvelle API libreoffice 5		
    def getMinimalWidth(self):
        return 50

surveillancefeuillevisuel.JPG
modifier_element.JPG
Toutefois, une partie de ma question principale n'a pas été résolue, même après l'installation réussie de cette superbe extension.
Comment déclencher des événements à toutes les étapes de modification d'un contenu de cellule ?
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !