Bonjour

Je pense que vous devriez nous faire parvenir un exemple de votre application (Calc et Base) afin de bien comprendre votre problème et votre façon de voir les choses.

Pour autant que je comprenne votre problème, vous vous méprenez sur les possibilités des logiciels : Il y a une logique, un mode de fonctionnement propre à chaque logiciel. Et, comme beaucoup de gens,  vous confondez Calc et Base , Tableur et Base de données :

 * Un tableur contient des formules sur une zone donnée, puis, ces
   formules s'adaptent ensuite aux données introduites. Mais les
   formules sont toujours préexistantes. Y compris pour "validité" ,
   puisque que, avant de définir les critères de validité, il faut
   sélectionner la zone où elle s'applique. On pourrait en dire autant
   des mises en forme conditionnelles. Validité et Format
   conditionnelle ne sont pas des formules au sens strict du terme
   (quoique on puisse y utiliser aussi des formules), mais en interne,
   ces deux fonctionnalités sont traitées comme telles. Dans un tableur
   le but est de faire des calculs, la présentations et la manipulation
   des données sont secondaires. Tout ceci quelque soit le tableur,
   sinon ce ne serait pas un tableur .
 * Une base de données contient des données (les tables sont
   préexistantes à tout le reste) puis  met en forme, fait des calculs
   en fonction de ces données (grâce aux formulaires et aux requêtes).
   Dans une base de données le but est de faire de la manipulation de
   données , que ce soit la présentation, la sélection ou le calcul,
   les traitements s'adaptent aux données présentent.

La solution standard de votre problème est de tout traiter dans Base. Base n'est pas vraiment plus compliqué que Calc. surtout si vous admettez déjà que la création et la manipulation de requêtes dans Base sont assez simple. Et si vous partez du principes que la personne qui va faire la maintenance de l'application maîtrise la manipulation de formules dans Calc. La création de formules de calcul dans une requête Base n'est pas très différente. En tant que formateur , je peux vous dire que les fondements de Base peuvent se maîtriser en 35 heures environ, y compris par des footballeurs en cours du soir ;)  (je ne me moque pas des footballeurs, je n'ai aucun a priori sur leur niveau intellectuel, c'est juste un cours que j'ai réalisé il y a quelques temps)

En dernier recours, si Base vous sert essentiellement à filtrer des données et à les présenter,  je pense qu'une solution possible dans Calc est de passer par une "Table dynamique" avec filtre mais, a priori, la complexité sera identique. Et aussi de créer le "formulaire" de présentation dans Calc, surtout si celui-ci est de forme tabulaire. NB : la notion de formulaire dans Calc (Données-Formulaire), n'a rien à voir avec celle de Base, je parle simplement de créer une présentation avec disposition et mise en forme de certaines cellules. Un peu comme certaines personnes utilisent les tableurs pour écrire leur courrier ;)

Bon courage

Christian
Le 26/08/2024 à 08:46, [email protected] a écrit :
Merci Jean-François pour cette réponse.
Mes réponses :
1-"La feuille de saisie peut faire appel à une formule de cotisation,, ça ne
pose pas de pb. "
Si, car chaque nouvelle ligne (= un nouvel adhérent), est vide aucune formule 
n'est positionnée. C'est bien mon problème.

2-"Le stockage devrait être sur un feuille *séparée* du classeur. En
l'occurrence par simple recopie des valeurs de la feuille de saisie.
S'il y a plusieurs feuilles de saisie, vous pouvez soit les agglomérer
dans une unique feuille de données soit gérer plusieurs feuilles de
stockage, en fonction du besoin.
-> Liez alors cette/ces feuille-s à votre odb (où elle devien-nen-t
une/des table-s) et non pas la-les feuille-s de saisie.
"
C'est bien ce que j'ai fait et décrit : une feuille de saisie (= "onglet" dans 
ma description, =une table dans l'odb), et x feuilles dans le même ods, et ce autant 
qu'il y a de besoins de restitution (formatage, calcul, tri, couleur...). Mais en faisant 
ainsi, cela ne peut traiter mon besoin. Je souhaite que à la saisie, l'utilisateur voit 
le montant des cotisations et ce sans être obligé de changer de feuille...etc...

3-"Comme vous devinez à mon commentaire, finalement la bonne route n'est
pas le tableur, même mâtiné de SGBD. Passez en 100% Base, quitte à
conserver le tableur comme interface d'interrogation/rapports."
Je connais bien les principes que vous évoquez (saisie, traitement, stockage), 
ce qu'est un SGBD. Mon souci est, comme indiqué, de ne pas complexifier la 
maintenance pour celui qui la reprendra. Si je fais du pur SGBD, un 
formulaire...la complexité monte d'un cran que je me suis interdit.  
(actuellement, si des actions de maintenance sont nécessaires dans Base, elles 
seront limitées à des modifications de critères de sélection, tri...dans les 
requêtes, qui peuvent se réaliser par l'interface graphique d'édition des 
requêtes dans Base, donc assez simple).
J'ai simplement constaté que LO, dans calc avait bien intégré des 
fonctionnalités nativement plutôt SGBD (tri, actualiser la plage, validité). 
Notamment cette dernière, que j'ai bien observé fonctionner n'est pas qu'une 
fonctionnalité tableur.
J'espérais que LO ait développé une génération automatique d'une formule dans une cellule 
atteinte par la saisie. La complexité et la logique d'un tel développement me semble d'un 
niveau analogue à celui induit par la fonctionnalité "Validité".  Au vu des 
1eres réponses, cela ne semble pas être le cas. J'en ferai mon deuil.

4-"Comme vous devinez à mon commentaire, finalement la bonne route n'est
pas le tableur, même mâtiné de SGBD. Passez en 100% Base, quitte à
conserver le tableur comme interface d'interrogation/rapports."
Comme indiqué en 3, tout passer en Base implique une maintenance plus complexe.



________________________________
De : Jean-Francois Nifenecker<[email protected]>
Envoyé : dimanche 25 août 2024 22:59
À :[email protected]  <[email protected]>
Objet : *** SPAM *** Re: [fr-users] Calc : Ajout de formule automatiquement 
dans nouvelle ligne

Bonsoir François,

Le 25/08/2024 à 19:19,[email protected]  a écrit :
Bonsoir,
tout d'abord, j'espère avoir plus de chance que lors de mes échanges précédents 
avec cette liste : les caractères accentués n'étaient pas pris en compte et les 
messages pas trop lisibles. J'ai alors reçu le conseil de ne plus passer par le 
web orange. J'utilise donc outlook. Nous verrons !
Je confirme que tout va bien !

Pour les besoins d'une section d'un club auquel j'appartiens, j'ai développé un 
outil qui permet de faire la gestion nécessaire :
- saisie du fichier adhérent dans un .ods
[...]

Je prévois d'ajouter une colonne cotisation.
Je souhaiterai qu'à chaque nouvel adhérent saisi, cette colonne se charge 
automatiquement de la formule de calcul des cotisations.
J'ai essayé de la prevaloriser par copier coller sur un grand nombre de lignes. 
Le problème est que tous ces lignes sont vues comme des lignes de la base de 
données ods. Et c'est contraire à la logique de base de données.
oui.

Dans votre tableur, il faut faire ce que font les professionnels dans
les SGBD (systèmes de gestion de bases de données) : séparer la saisie,
le traitement et le stockage.

La feuille de saisie peut faire appel à une formule de cotisation,, ça ne
pose pas de pb. Elle correspond(rait) à un "formulaire" dans un SGBD.
Dans certains cas on peut même imaginer plusieurs feuilles de saisie
dédiées à plusieurs types de données.

Le stockage devrait être sur un feuille *séparée* du classeur. En
l'occurrence par simple recopie des valeurs de la feuille de saisie.
S'il y a plusieurs feuilles de saisie, vous pouvez soit les agglomérer
dans une unique feuille de données soit gérer plusieurs feuilles de
stockage, en fonction du besoin.
-> Liez alors cette/ces feuille-s à votre odb (où elle devien-nen-t
une/des table-s) et non pas la-les feuille-s de saisie.



Comme vous devinez à mon commentaire, finalement la bonne route n'est
pas le tableur, même mâtiné de SGBD. Passez en 100% Base, quitte à
conserver le tableur comme interface d'interrogation/rapports.

Mais en attendant, la méthode indiquée ci-dessus devrait vous aider.

Je précise que, pour rester dans la logique retenue pour le développement 
initial, je ne souhaite pas utiliser de macro.
Une fonction de LO permet elle celà ?
Oui, Base (voir ci-dessus) :-)

Bonnes suites !


Très cordialement,
--
Jean-Francois Nifenecker, Bordeaux

--
Envoyez un mail à[email protected]  pour vous désinscrire
Les archives de la liste sont disponibles 
àhttps://listarchives.libreoffice.org/fr/users/
Privacy Policy:https://www.documentfoundation.org/privacy


--
Envoyez un mail à [email protected] pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Répondre à