[Résolu][Calc] Mettre à jour les références lors du tri

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 !
etienne-tr
Fraîchement OOthentifié
Messages : 6
Inscription : 12 avr. 2023 08:20

[Résolu][Calc] Mettre à jour les références lors du tri

Message par etienne-tr »


La modération vous a écrit: Sujet déplacé. Notez l'ajout de la balise [Calc] obligatoire dans cette section dédiée aux macros

Bonjour,

Je souhaite paramétrer par macro l'option calc "Mettre à jour les références lors du tri de plages de cellules" (et non pas en utilisant le menu).

J'ai pas mal cherché avec l'outil XRAY et dans les forums mais je ne trouve pas de propriété ou de méthode correspondant à cette option dans thisComponent.

J'ai tenté ma chance avec ThisComponent.setPropertyValue( "UpdateReferenceOnSort" , True ) après avoir lu ce post : https://bugs.documentfoundation.org/sho ... i?id=85490

Puis j'ai trouvé cette piste : https://docs.libreoffice.org/sc/html/cl ... utCfg.html mais je ne sais pas comment utiliser cette classe d'objet pour accéder à l'option "SCINPUTOPT_SORT_REF_UPDATE" qui semble lui être attachée.

Avez-vous une idée de comment je pourrais modifier cette option ?
LibreOffice 7.4.6.2 sur Ubuntu 22.04.2
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1468
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] Mettre à jour les références lors du tri

Message par jeanmi2403 »

Bonsoir,
etienne-tr a écrit : 12 avr. 2023 08:28 "Mettre à jour les références lors du tri de plages de cellules" (et non pas en utilisant le menu).
Quel menu ?
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
etienne-tr
Fraîchement OOthentifié
Messages : 6
Inscription : 12 avr. 2023 08:20

Re: [Calc] Mettre à jour les références lors du tri

Message par etienne-tr »

C'est une option que je peux modifier via le menu : Outils > Options... > LibreOffice Calc > Général en cochant la ligne "Mettre à jour les références lors du tri de plages de cellules".
LibreOffice 7.4.6.2 sur Ubuntu 22.04.2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Mettre à jour les références lors du tri

Message par Dude »

Salut,

Tout ce qui est géré dans le dialogue Outils > Options est accessible via le service ConfigurationProvider.
Attention, le paramétrage est global à Calc et en aucun cas, il ne pourra s'exécuter que sur un document.
Sauf à mettre en place une gymnastique à l'ouverture et à la fermeture du classeur qui remettrait le réglage à l'initial.
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1468
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] Mettre à jour les références lors du tri

Message par jeanmi2403 »

Bonsoir,
Tu trouve ce paramètre en cherchant "Reference" dans la configuration avancée.
C'est l'a propriété UpdateReferenceOnSort du paramètre Input dans la branche org.openoffice.Office.Calc
Pour le modifier :

Code : Tout sélectionner

Sub MajReference
Dim oDocument as Object

sNodePath = "org.openoffice.Office.Calc"
oDocument = ThisComponent

Dim args(1) As new com.sun.star.beans.PropertyValue 
args(0).Name = "nodepath" 
args(0).Value = sNodePath
args(1).Name = "EnableAsync" 
args(1).Value = false 

aConfProv = createUnoService("com.sun.star.configuration.ConfigurationProvider") 
aParams = aConfProv.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess", args()) 

aParams.getByname("Input").UpdateReferenceOnSort = True
aParams.commitChanges()
Msgbox ("Activé",MB_ICONINFORMATION,"Mise à jour réferences")

End Sub
Cordialement,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
etienne-tr
Fraîchement OOthentifié
Messages : 6
Inscription : 12 avr. 2023 08:20

Re: [Calc] Mettre à jour les références lors du tri

Message par etienne-tr »

Merci pour votre réponse, je n'ai jamais été aussi proche de la solution !
L'option est bien modifiée puisque je retrouve la valeur affectée après fermeture/ouverture du document en faisant

Code : Tout sélectionner

MsgBox aParams.getByname("Input").UpdateReferenceOnSort
mais cela n'affecte pas le comportement de Calc. La coche reste décochée également dans le menu "Outils > Options...".

J'ai tenté avec

Code : Tout sélectionner

args(1).Name = "EnableAsync" 
args(1).Value = true 
au lieu de false.

J'ai essayé d'ajouter d'autres méthodes comme

Code : Tout sélectionner

aConfProv.flush()
en espérant que Calc prenne en compte la valeur de UpdateReferenceOnSort affectée par macro mais en vain.

Je vois dans votre message que la variable oDocument n'est pas utilisée, y a-t-il quelque chose à faire avec ?

Comment faire pour que la modification de l'option soit prise en compte par Calc ?
LibreOffice 7.4.6.2 sur Ubuntu 22.04.2
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Mettre à jour les références lors du tri

Message par Dude »

etienne-tr a écrit : 01 mai 2023 13:43 mais cela n'affecte pas le comportement de Calc. La coche reste décochée également dans le menu "Outils > Options...".
As-tu essayé de décocher la case à la main et voir si le résultat était correct sur ton document ?
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1468
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] Mettre à jour les références lors du tri

Message par jeanmi2403 »

Salut,
Je viens d'essayer, car j'avais une machine Ubuntu et LibO en 7.3.
Même phénomène que pour toi, la case ne se coche pas, sauf si on ferme LibreOffice (Toutes les fenêtres), et qu'on l'ouvre ensuite.
En revanche, en version 7.4.6 ça fonctionne impeccable. Il y a des mystères....
Tu devrais mettre à jour.
Cordialement,
Dernière modification par jeanmi2403 le 01 mai 2023 21:02, modifié 1 fois.
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
etienne-tr
Fraîchement OOthentifié
Messages : 6
Inscription : 12 avr. 2023 08:20

Re: [Calc] Mettre à jour les références lors du tri

Message par etienne-tr »

Yes nickel, merci encore ! J'ai du bizarrement passé par le PPA "still" pour avoir une 7.4 alors que c'est censé être le cas avec un Ubuntu 22.04 LTS.

Avant de marquer le poste comme résolu, saurais-tu me dire ce que fait l'argument

Code : Tout sélectionner

args(1).Name = "EnableAsync" 
args(1).Value = false 
car la macro fonctionne aussi bien sans celui-ci.
LibreOffice 7.4.6.2 sur Ubuntu 22.04.2
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1468
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] Mettre à jour les références lors du tri

Message par jeanmi2403 »

Bonsoir,
J'avais recopié, (a l'arrache) depuis un autre projet, pour y mettre tes paramètres, et il y a des choses qui ne servent à rien, effectivement. Je n'ai pas bien fait le ménage.:roll:
Notamment oDocument. Pour EnableAsync je ne sais plus...
Je n'utilise pas les versions des dépôts, qui ont parfois des comportements étranges. Et c'est maintenant très facile d'installer les versions téléchargées sur le site officiel.
Il paraît que je devrais faire une doc la dessus.....
A plus,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
etienne-tr
Fraîchement OOthentifié
Messages : 6
Inscription : 12 avr. 2023 08:20

Re: [Calc] Mettre à jour les références lors du tri

Message par etienne-tr »

Merci encore :-)
LibreOffice 7.4.6.2 sur Ubuntu 22.04.2
etienne-tr
Fraîchement OOthentifié
Messages : 6
Inscription : 12 avr. 2023 08:20

Re: [Calc] Mettre à jour les références lors du tri

Message par etienne-tr »

Oups je ne trouve pas comment marquer le sujet comme résolu. Un modérateur pourrait-il m'aider ?
LibreOffice 7.4.6.2 sur Ubuntu 22.04.2
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4117
Inscription : 06 oct. 2008 08:03

Re: [Calc] Mettre à jour les références lors du tri

Message par Oukcha »

Bonjour,

C'est indiqué dans la section... À lire avant tout

Voici comment procéder :
  • Vous devez être connecté sinon vous ne pouvez avoir accès à vos sujets de discussion.
  • Placez-vous sur le premier message de votre fil de discussion
  • En haut à droite de ce message, cliquez sur le bouton du petit crayon pour éditer.
  • Modifiez le titre du message en cochant l'icône Image et en tapant [Résolu] (respectez la graphie donnée) comme illustré ci-dessous

    Image
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12457
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Calc] Mettre à jour les références lors du tri

Message par Bidouille »

Dernière visite : 08 mai 2023 12:35
Revenu plusieurs fois sans donner suite. :evil:
A priori, c'est insurmontable pour certains de suivre une simple animation et baliser correctement.