[Résolu][Calc]Grouper des résultats dans 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 !
Michel Damiens
Fraîchement OOthentifié
Messages : 6
Inscription : 08 avr. 2019 22:23

[Résolu][Calc]Grouper des résultats dans une table dynamique

Message par Michel Damiens »

Bonjour,
dans une macro créant une table dynamique je dois grouper des dates et des valeurs numériques.
Pour les dates cela fonctionne avec ce code :

Code : Tout sélectionner

Dim oGroupe(0 To 1) As New com.sun.star.sheet.DataPilotFieldGroupInfo
With oGroupe(0)
  		.HasAutoStart = True
  		.HasAutoEnd = True
		.HasDateValues = True
		.SourceField = champs(0)
		.GroupBy = 16
		.Step = 0
End With
champs(0).CreateDateGroup(oGroupe(0))

Mais je n'arrive pas à trouver les bons paramètres pour grouper (par 2) les données d'un champ numérique.
Le code suivant

Code : Tout sélectionner

With oGroupe(1)
  		.HasAutoStart = True
  		.HasAutoEnd = False
		.HasDateValues = false
		.SourceField = 0
		.GroupBy = 0
		.Step = 2
End With
champs(6).CreateNameGroup(oGroupe(1))
me donne les erreurs :
variable d'objet non définie
sur .SourceField = 0
J'ai essayé sans succès d'autres valeurs pour .SourceField et .GroupBy
Quels sont les bonnes valeurs ?

Merci pour votre aide.
Michel
Dernière modification par micmac le 15 avr. 2019 07:32, modifié 2 fois.
Raison : Balise [Calc]+Balisage
LibreOffice 6.0.7.3 sous Ubuntu 18.04
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3948
Inscription : 06 oct. 2008 08:03

Re: Grouper des résultats dans une table dynamique

Message par Oukcha »

Bonjour et bienvenue,

Image

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://user.services.openoffice.org/fr/ ... html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.

Merci de votre collaboration.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Michel Damiens
Fraîchement OOthentifié
Messages : 6
Inscription : 08 avr. 2019 22:23

Re: [Calc]Grouper des résultats dans une table dynamique

Message par Michel Damiens »

Je complète ma question
Si je mets les paramètres suivants :

Code : Tout sélectionner

With oGroupe(1)
  		.HasAutoStart = True
  		.HasAutoEnd = True
		.HasDateValues = False
		.SourceField = champs(6)
		.GroupBy = 0
		.Step = 2
End With
champs(6).CreateNameGroup(oGroupe(1))
j'obtiens l'erreur suivante
Erreur d'exécution BASIC.
Une exception s'est produite :
Type: com.sun.star.lang.IllegalArgumentException
Message: cannot coerce argument type during corereflection call:
arg no.: 0 expected: "[]string" actual: "void".
Merci pour votre aide
LibreOffice 6.0.7.3 sous Ubuntu 18.04
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc]Grouper des résultats dans une table dynamique

Message par Dude »

Comme d'habitude, Mme Irma est partie en vacances.
Les bénévoles qui restent n'ayant pas de pouvoir de divination, il va falloir joindre un document incorporant les macros.
Avec, tu ajoutes des copies écran de ce que tu as au départ et ce que tu veux à l'arrivée.
Michel Damiens
Fraîchement OOthentifié
Messages : 6
Inscription : 08 avr. 2019 22:23

Re: [Calc]Grouper des résultats dans une table dynamique

Message par Michel Damiens »

Bonjour,

Complément :
Je joins le classeur contenant le programme (dans Standard - Module 1)

La feuille "Base" du classeur contient la base des données à partir de laquelle je veux faire un tableau croisé dynamique.

Quand j'exécute Main telle qu'elle est (c'est à dire avec les lignes 72 à 80 mises en commentaire) cela fonctionne et on obtient le résultat dans "feuille table essai (1)"

J'ai mis dans "feuille table essai (2)" ce que je veux obtenir et que j'ai obtenu à partir de la table dynamique précédente en utilisant Données - Groupe - Plan et Groupe - Grouper par 2, après avoir sélectionné la cellule D6

Normalement je devrais pouvoir obtenir le même chose par une macro en décommentant les lignes 72 à 80 ; mais cela me donne les messages d'erreurs signalés dans mon premier message.

Remarque : les 2 feuilles sont des copies de la table dynamique originale obtenue ; pour faire les tests il faut ré-exécuter la macro Main et travailler dans la nouvelle "feuille table essai" obtenue
Merci
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 6.0.7.3 sous Ubuntu 18.04
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: [Calc]Grouper des résultats dans une table dynamique

Message par Hubert Lambert »

Bonjour,

Ci-joint une version qui semble fonctionner.
Au passage, merci d'avoir attiré l'attention sur cette option "Grouper" spécifique aux tableaux dynamiques, dont j'ignorais totalement l'existence ! :wink: .
Cordialement.
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)
Michel Damiens
Fraîchement OOthentifié
Messages : 6
Inscription : 08 avr. 2019 22:23

Re: [Calc]Grouper des résultats dans une table dynamique

Message par Michel Damiens »

Bonjour
et merci pour cette solution qui fonctionne très bien.
Cordialement,
Michel
LibreOffice 6.0.7.3 sous Ubuntu 18.04
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9251
Inscription : 28 août 2010 08:45

Re: [Calc]Grouper des résultats dans une table dynamique

Message par micmac »

Bonjour,

Problème résolu ?

Il est d'usage de cocher l'icône Image et d'ajouter manuellement au début du titre de votre premier message la balise [Résolu] (avec un R majuscule et sans oublier le e accentué, le tout entre crochets).

Image

Cordialement
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac