[LO Calc] Mise en forme tableau

Bonjour à tous,

J'utilise LO 6.3.5.2 64 bits sous Windows 7 pro.

J'ai des tableaux calc avec un certain nombre de lignes dont il faut que
j'améliore la mise en forme pour traitement.

Comme un exemple vaut qu'un long discours, voici un fichier anonymisé
ici https://www.cjoint.com/c/JDym6LhOMhZ

Il faut qu'à partir du tableau du 1er onglet (brut), j'arrive au tableau
du 2ème onglet (mis en forme).

Ce que je fait manuellement (en gras), à chaque changement de numéro de
regroupement :
- j'insère une ligne en dessous ;
- je recopie le numéro de regroupement (colonne A) et la date (colonne B) ;
- je saisi "contrepartie" (colonne C) ;
- j'ajoute la formule (colonne D ou E) somme des montants (colonne E ou
D) des lignes qui comprennent le même code de regroupement.

Pour l'instant, je fais ça manuellement mais j'ai plusieurs tableaux de
plusieurs milliers de lignes. C'est pas palpitant.

J'imagine que cela peut être automatisé avec calc mais je ne vois pas
trop comment. Si vous pouviez me donner une piste, je vous en serais
très reconnaissant.

Vous remerciant de votre aide,

Cordialement.

Bonjour
En fait tu fais des sous totaux à la main... C'est pas vraiment une
mise en forme qui te permet de passer du brut au "mis en forme"La mise
en forme c'est ce que tu as déjà dans ta feuille brut : les cellules
fusionnées, l'arrière plan bleu....
Donc Données / Sous totaux Regrouper par => colonne regroupement
//fonction somme sur...te permettra d'obtenir les totaux, (et la mise
en gras) qui en revanche ne seront pas dans la bonne colonne....
Tu pourrais aussi faire un tableau croisé... mais là encore les totaux
s'afficheront pour les recettes, quand il s'agît de recettes, pour les
dépenses quand il s'agît de dépenses

Si tu veux intercaler automatiquement le résultat, en plus dans la
bonne colonne, je ne vois rien de plus approchant.
Si la "contrepartie" pour chacun des "regroupements" peut être séparée
des lignes de chaque regroupement alors là tu as un boulevard
(fonctions : somme.si, sous.total, et même un
extraire.donnees.pilote). D'autant qu'ensuite, en triant correctement,
tu dois pouvoir retrouver l'ordre intiial (attention toutefois à ce que
tes formules restent valables)
https://drop.infini.fr/r/FjvJ7qsZU9#IPl7IxzXuKkJximW7LdCRwSryNGdyLC8bBzUpGOD4tk=
Parce que sinon quand il s'agît de passer vraiment de données brutes à
des données "mises en forme" avec une agrégation éventuelle... : je
crée une feuille modèle qui va chercher toutes les infos dans une
feuille "données brutes", et qui s'actualise automatiquement (formules)
en fonction des "données brutes". Dans ton cas, ça peut s'imaginer pour
lister toutes les contreparties, si les regroupements sont toujours les
mêmes... mais ça me semble inutile
Je pense que y'a un souci "conceptuel" dans ce que tu cherches à faire
si tu ne veux pas le faire manuellement... car tes fameuses
contreparties, devraient correspondre elles aussi à des lignes, sans
que tu les ajoutes...Reste que sommer par regroupement, juste à la find
e chaque regroupement, en le faisant dans la colonne inverse, je n'ai
pas de doute qu'une macro le fera...
Bon courage
Claire

Bonjour,

Merci beaucoup de ta réponse.

Tu as raison, je me suis mal exprimé. Ce n'est pas un problème de mise
en forme mais de retraitement.

J'avais bien aussi pensé aux sous-totaux mais je ne voyais pas comment
obtenir l'obtenir dans l'autre colonne.

Il n'y a pas de problème conceptuel. C'est pour transformer un tableau
de trésorerie en journal comptable. Et le journal comptable doit bien se
présenter comme celui de l'onglet "mise en forme".

Table de pilote, je ne connais pas. Ce n'est pas l'équivalent d'un
tableau croisé dynamique ?

Le tableau de ton onglet "Tdp" est fait à partir du tableau de l'onglet
"vraies données brutes" ou "sous_totaux"

Le tableau de l'onglet "ExDP" est parfait pour les contreparties. Il
faut juste que j'ajoute les lignes du tableau de l'onglet "vraies
donnnées brutes". Vois tu comment je pourrais fusionner les tableaux de
ces 2 onglets dans un autre ?

Te remerciant de ton aide,

Cordialement,

Stéphane.

Re !

Bonjour,

Merci beaucoup de ta réponse.

Tu as raison, je me suis mal exprimé. Ce n'est pas un problème de mise
en forme mais de retraitement.

J'avais bien aussi pensé aux sous-totaux mais je ne voyais pas comment
obtenir l'obtenir dans l'autre colonne.

je n'ai pas vu non plus

Il n'y a pas de problème conceptuel. C'est pour transformer un tableau
de trésorerie en journal comptable. Et le journal comptable doit bien se
présenter comme celui de l'onglet "mise en forme".

ok, mais ton tableau données brutes n'a pour seul différence que la
mise en place des lignes de sous totaux. Tu as peut-être un niveau plus
brut avant duquel il serait plus facile de partir pour arriver au
résultat final ?

Table de pilote, je ne connais pas. Ce n'est pas l'équivalent d'un
tableau croisé dynamique ?

oui c'est la même chose, table de pilote, table dynamique (dans la
version 6.3)

Le tableau de ton onglet "Tdp" est fait à partir du tableau de l'onglet
"vraies données brutes" ou "sous_totaux"

la feuille "vraies données brutes" est la source de la Table de pilote
(TdP).
La feuille "sous totaux est faite à partir d'une copie de la feuille
"vraies données brutes" (modification directement sur les données)

Le tableau de l'onglet "ExDP" est parfait pour les contreparties. Il
faut juste que j'ajoute les lignes du tableau de l'onglet "vraies
donnnées brutes". Vois tu comment je pourrais fusionner les tableaux de
ces 2 onglets dans un autre ?

La seule chose que j'imagine c'est de placer ces calculs à la fin de
tes données, et ensuite de faire un tri... à condition que ça ne
modifie pas les calculs de la fonction "Extraire Données Pilote" (je
n'ai pas essayé)
=> la fontion en question a besoin d'une table de pilote pour
travailler (la source est donc la table de pilote de la feuille TdP)
Il faut donc voir si avec les données réelles ça vaut toujours le coup
(car tu gardes plusieurs opérations manuelles à chaque fois.

néanmois si tu te construit un modèle avec
en feuille 1 => les données brutes
en feuille 2 => la TdP
en feuille 3 => la reprise des données brutes + les calculs (à mettre
plutôt en début de feuille pour gérer le nombre de lignes variables)
Tu peux créer un nouveau fichier (à chaque fois), où
1- tu colles les nouvelles données en feuille 1
2- tu actualises la TDP (que tu auras configurée une fois pour toutes
dans le modèle)
3- tu tries les données de la feuille 3 (tu auras placé via le modèle
l'ensemble des calculs une fois pour toutes).

Ce que tu cherches à faire est simple en apparence mais le point
délicat est la bascule entre dépenses et recettes pour les sommes. Dans
ce cas là, un traitement algorithmique serait surement plus facile, et
tu pourrais automatiser les choses avec de multiples données à
"transformer".
ça veut dire passer à une macro ou à un autre outil (avec du Python, du
R, ça se ferait facilement je pense...). Pour le coup, je ne pratique
pas assez souvent, pour t'aiguiller là dessus (d'où mes recherches coté
fonctions...)

Te remerciant de ton aide,

Pas de soucis, la liste est là pour ça !

Cordialement,

Stéphane.

Bon courage

Claire

Comme claire l'a fait remarquer,
les sous-totaux peuvent résoudre facilement.
Et en y appliquant un formatage conditionnel qui applique un style au
résultat/somme, tu obtiens quasi ce que tu souhaites.

1) Sélectionner la plage avec tes données (A1:E20) : données- sous totaux -
(cocher dépenses et recettes).
2) Sélectionner la plage avec tes données (A1:E20) : Format - formatage
conditionnel - condition..
      Formule : SI(droite($A2;5)="ultat")
                      appliquer le style : Accent (par exemple)
      [Ajouter]
      Formule : SI(droite($A2;5)="Somme")
                      appliquer le style : Accent
     [OK]

Yves

Bonjour Claire,

Merci de tes explications.

Re !

Bonjour,

Merci beaucoup de ta réponse.

Tu as raison, je me suis mal exprimé. Ce n'est pas un problème de mise
en forme mais de retraitement.

J'avais bien aussi pensé aux sous-totaux mais je ne voyais pas comment
obtenir l'obtenir dans l'autre colonne.

je n'ai pas vu non plus

Ok

Il n'y a pas de problème conceptuel. C'est pour transformer un tableau
de trésorerie en journal comptable. Et le journal comptable doit bien se
présenter comme celui de l'onglet "mise en forme".

ok, mais ton tableau données brutes n'a pour seul différence que la mise
en place des lignes de sous totaux. Tu as peut-être un niveau plus brut
avant duquel il serait plus facile de partir pour arriver au résultat
final ?

Si, si

Table de pilote, je ne connais pas. Ce n'est pas l'équivalent d'un
tableau croisé dynamique ?

oui c'est la même chose, table de pilote, table dynamique (dans la
version 6.3)

Ok

Le tableau de ton onglet "Tdp" est fait à partir du tableau de l'onglet
"vraies données brutes" ou "sous_totaux"

la feuille "vraies données brutes" est la source de la Table de pilote
(TdP).
La feuille "sous totaux est faite à partir d'une copie de la feuille
"vraies données brutes" (modification directement sur les données)

Ok, je comprends.

Le tableau de l'onglet "ExDP" est parfait pour les contreparties. Il
faut juste que j'ajoute les lignes du tableau de l'onglet "vraies
donnnées brutes". Vois tu comment je pourrais fusionner les tableaux de
ces 2 onglets dans un autre ?

La seule chose que j'imagine c'est de placer ces calculs à la fin de tes
données, et ensuite de faire un tri... à condition que ça ne modifie pas
les calculs de la fonction "Extraire Données Pilote" (je n'ai pas essayé)
=> la fontion en question a besoin d'une table de pilote pour travailler
(la source est donc la table de pilote de la feuille TdP)
Il faut donc voir si avec les données réelles ça vaut toujours le coup
(car tu gardes plusieurs opérations manuelles à chaque fois.

néanmois si tu te construit un modèle avec
en feuille 1 => les données brutes
en feuille 2 => la TdP
en feuille 3 => la reprise des données brutes + les calculs (à mettre
plutôt en début de feuille pour gérer le nombre de lignes variables)
Tu peux créer un nouveau fichier (à chaque fois), où 
1- tu colles les nouvelles données en feuille 1
2- tu actualises la TDP (que tu auras configurée une fois pour toutes
dans le modèle)
3- tu tries les données de la feuille 3 (tu auras placé via le modèle
l'ensemble des calculs une fois pour toutes).

Je vais creuser cette piste là, ça me semble faisable.

Ce que tu cherches à faire est simple en apparence mais le point délicat
est la bascule entre dépenses et recettes pour les sommes. Dans ce cas
là, un traitement algorithmique serait surement plus facile, et tu
pourrais automatiser les choses avec de multiples données à "transformer".
ça veut dire passer à une macro ou à un autre outil (avec du Python, du
R, ça se ferait facilement je pense...). Pour le coup, je ne pratique
pas assez souvent, pour t'aiguiller là dessus (d'où mes recherches coté
fonctions...)


Là, je n'y connais franchement rien alors ça va être vraiment difficile.

encore merci beaucoup de ton aide.

Cordialement,

Stéphane.

Bonjour,

Merci de ta réponse.

Le problème résiduel que j'arrive pas à résoudre est de mettre la somme
des dépenses dans la colonne recettes et la somme des recettes dans la
colonne dépenses.

Merci de ton aide,

Cordialement.
Stéphane.

Je comprends pas bien la raison du pourquoi tu veux inverser les colonnes
de totalisation ?

Une dépense reste une dépense non ?
dans ton exemple, tu n'avais pas inversé ?
As-tu regardé mon fichier à la ligne 19 ?? (feuille Brut) ?

Yves

Re,

Mon objectif est de transformer ce tableau recettes/dépenses en journal
comptable. Il faut donc que dépenses = recettes en ajoutant une
contrepartie dans la colonne inverse à chaque dépense et recette.

J'ai bien vu la ligne 19 mais ? C'est un total des sous-totaux de la
même colonne.

Cordialement.

Stéphane.

ok compris.

Par macro, ce sera alors plus facile...

Yves

Bonjour Yves,

C'est parfait, exactement ce dont j'avais besoin.

J'ai regardé le code de ta macro. Avec tes explications, c'est
compréhensible, bravo.

Il faut vraiment que j'apprenne à faire et réfléchir macros. Tu me
conseilles quoi pour débuter et approfondir un peu ?

Je te remercie vraiment de ton aide,

Cordialement.
Stéphane.

Personnellement,
j'ai acheté le livre Programmation OpenOffice.org (edition 2) de Bernard
Marcelly et Laurent Godard.
sinon y'a aussi :
https://wiki.openoffice.org/wiki/FR/Documentation/BASIC_Guide
les exemples précieux de pitonyak : http://www.pitonyak.org/oo.php
la doc officielle :
https://documentation.libreoffice.org/assets/Uploads/Documentation/en/GS5.1/HTML/GS5113-GettingStartedWithMacros.html
et tu peux aussi lire le code des modèles de Libreoffice (#pub :slight_smile: :
https://extensions.libreoffice.org/templates/toutes-mes-factures-regroupees-dans-un-document
j'en oublie certainement ...

Bonne découverte :wink:
Yves

et pour ceux du forum, pour ne pas les priver :
https://lufi.alolise.org/r/toRh_JkKlU#9FmLwTBbMroE0VMBnBiuZZLlMF1/O/Aaxuab9PPCVdM=
lien vers le fichier ods avec la macro :wink:
Yves

Merci beaucoup Yves pour les liens, c'est sympa.

Cordialement.
Stéphane.