[Résolu][Calc] disposition d'une table dynamique

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 !
Grilladou
Membre lOOyal
Membre lOOyal
Messages : 33
Inscription : 07 mars 2021 20:47

[Résolu][Calc] disposition d'une table dynamique

Message par Grilladou »


La modération vous a écrit: Suppression du terme Problème qui n'est pas explicite de votre question

Bonjour à tous
Je cherche à créer une table dynamique qui fait un décompte (COUNT) et une moyenne (AVERAGE) sur 2 données différentes. Je me suis largement inspiré de codes trouvés sur ce forum, mais je bloque sur la présentation de la table dynamique. Dans le fichier exemple, il y a la feuille des données et la feuille de la table dynamique souhaitée. La macro crée une feuille "TCD obtenu". Concrètement, la macro affiche les champs de données en ligne dans la même colonne [C en l'occurrence] alors que je voudrais ces champs de données en colonne (de B à D).
De plus y a un truc qui m'échappe. La ligne

Code : Tout sélectionner

Champs(2).SetPropertyValue("Function", com.sun.star.sheet.GeneralFunction.COUNT)
renvoie un faux résultat car elle fait une somme (SUM) et non un décompte (COUNT). J'ai du louper qqchose malgré ma consultation de la page https://www.openoffice.org/api/docs/com ... ction.html
Si qqun à une idée, je suis preneur.
Un grand merci par avance
(la mise en forme des cellules est manuelle, je ferai par macro quand ce problème sera résolu)
Pièces jointes
Exemple_TCD.ods
(17.23 Kio) Téléchargé 70 fois
Dernière modification par Grilladou le 08 mai 2021 06:13, modifié 1 fois.
LibreOffice 6.4 (obsolète, mais obligé) - Windows 10 x64
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 665
Inscription : 20 déc. 2017 15:45

Re: [Calc] Problème de disposition d'une table dynamique

Message par rollmops »

Bonjour,

Utilise XRay et inspecte ton TCD obtenu.
Tu verras comment il est construit au niveau des DataFields.
OpenOffice 4.1.15 - Windows 10
Grilladou
Membre lOOyal
Membre lOOyal
Messages : 33
Inscription : 07 mars 2021 20:47

Re: [Calc] Problème de disposition d'une table dynamique

Message par Grilladou »

Bonsoir à tous,
A priori, j'ai trouvé la solution (merci Google), je teste et si le résultat est bien conforme je posterai la solution. Ca peut toujours intéresser qq'un.
A cette étape là, je baliserai en "Résolu" (trop tôt pour le goudron et les plumes :D )
LibreOffice 6.4 (obsolète, mais obligé) - Windows 10 x64
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 665
Inscription : 20 déc. 2017 15:45

Re: [Calc] Problème de disposition d'une table dynamique

Message par rollmops »

Grilladou a écrit :A priori, j'ai trouvé la solution (merci Google)
A priori, tu n'as pas installé XRay :(
OpenOffice 4.1.15 - Windows 10
Grilladou
Membre lOOyal
Membre lOOyal
Messages : 33
Inscription : 07 mars 2021 20:47

[Résolu] [Calc] disposition d'une table dynamique

Message par Grilladou »

A priori, tu n'as pas installé XRay :(
Si, si mais pas simple de trouver un paramètre quand on ne sait pas ce que l'on cherche. Toutefois, j'ai vu que "Orientation integer" pouvait peut-être m'intéresser. Google m'a emmené sur ce forum : Data Pilot Tables - setting the 'Position' property https://forum-test.openoffice.org/en/fo ... 45&t=56087 et de rebonds en rebonds, je suis revenu à la maison, puisque Piaf a indiqué la solution ici même https://forum.openoffice.org/fr/forum/v ... =8&t=46965

Pour résumer, il faut ajouter

Code : Tout sélectionner

oField = oTableDescr.getDataPilotFields().getByName("Données")
oField.Orientation = com.sun.star.sheet.DataPilotFieldOrientation.COLUMN
pour ajouter une présentation en colonne et

Code : Tout sélectionner

oField = oTableDescr.getDataPilotFields().getByName("Données")
oField.Orientation = com.sun.star.sheet.DataPilotFieldOrientation.ROW
pour une présentation en ligne.

Testé et approuvé. Un grand merci Piaf pour ta solution (cette fois, je passe en résolu).
Bonne journée
LibreOffice 6.4 (obsolète, mais obligé) - Windows 10 x64
Verrouillé