Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/04/2025, à 16:48

Coeur Noir

LibreOffice Calc : rendre invariable une formule dans une cellule

Bonjour,

Imaginons que dans la cellule A1 j'ai une donnée, et dans la cellule B1 une formule qui utilise cette donnée de A1, par exemple =A1*1,055

Si je déplace par glisser-déposer la cellule A1 vers A5, la formule dans B1 devient =A5*1,055

Je veux que B1 reste =A1*1,055

Donc là vous allez me dire, alors écris =$A$1*1,055 dans la cellule B1.

Sauf que… j'ai des centaines de cellules à modifier donc comment « verrouille-t-on » des formules après coup en quelque sorte ?

Dernière modification par Coeur Noir (Le 11/04/2025, à 16:49)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#2 Le 11/04/2025, à 17:16

Jeff_05

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Bonjour,

Pourrais-tu détailler ?

Si les cellules sont contiguëes, ça peut être très rapide avec la poignée de recopie (le petit carré en bas à droite de la cellule active), sinon, il faudra peut-être s'orienter vers le recherche/remplace.

A +


Debian 12.10

Hors ligne

#3 Le 11/04/2025, à 17:30

O_20_100_O

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Bonjour,

Si je déplace par glisser-déposer la cellule A1 vers A5, … j'ai des centaines de cellules à modifier

Assez souvent, quand la solution est compliquée, c'est que ce n'est pas la bonne façon se s'y prendre.
Veux-tu nous en dire plus sur le contexte ? Qu'est-ce qui fait que tu as tout cela à déplacer ?

Peut-être qu'une base de données irait mieux qu'un tableur. Il faut voir de plus près.

Hors ligne

#4 Le 11/04/2025, à 20:02

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

…bah c'est surtout que je cherche à rendre un document fool-proof et que s'il y a bien un truc qui tend à foutre en l'air les tableurs,
ce sont les glisser~déposer et autre couper~coller.

Oui les cellules sont contiguës, mais pour « construire » les formules en utilisant la poignée de recopie, je dois laisser des références relatives.
Ensuite je voudrais passer toutes ces formules obtenues en références absolues.
C'est là que ça me contrarie : si je dois faire ça à la mano, cellule par cellule…

Dans le même ordre d'idées, j'aimerais assez pouvoir régler le comportement par défaut du « coller » ( uniquement les données, surtout pas la mise en forme )
lorsque le document est confié à l'utilisateur final.

Quant au contexte…

On a un tableau par semaine, une feuille par mois, sur un an.
Dans une colonne, une liste de films à l'affiche cette semaine-là par exemple.
Dans une colonne plus loin, le nombre de semaines à l'affiche des dits films, formule NB.SI(plage;titre)

Dans une feuille « DATA » je regroupe les données titres dans un tableau unique simple,
pour référencer les plages à prendre en compte, plages nommées d'une part par semaine, et d'autre part par mois cumulés ( une plage premier mois de l'année, une plage premier + deuxième mois, une plage premier + deuxième + troisième mois, etc, etc )
Et la mécanique de calcul qui se répète c'est juste l'addition du ou des mois précédents ( référencé via la feuille DATA ) + la ou les semaines du mois de la feuille courante.

Toute cette partie de comptage du cumul de semaines par titre fonctionne. À priori.

Jusqu'à ce que quelqu'un fasse du couper-coller ou du glisser-déposer dans la colonne A… là ça 'pète' la formule dans la cellule D tant qu'elle n'est pas en références absolues.
Ce qui m'importe, c'est que l'utilisateur final, dans la colonne "films" puisse couper, déplacer, car l'ordre dans la liste des éléments n'a aucune importance.

( je reviens, le temps de mettre en ligne quelque part le doc' - qui est un peu plus compliqué que ce que je décris là mais fonctionne globalement comme je m'y attendais. )

Lien gougueule draïve

Dernière modification par Coeur Noir (Le 11/04/2025, à 20:11)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#5 Le 11/04/2025, à 20:15

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

En gros je veux faire ça : https://help.libreoffice.org/latest/fr/ … ative.html
mais en sélectionnant cellules et feuilles pour l'appliquer d'un coup à toutes mes plages indiquant le cumul semaines.


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#6 Le 11/04/2025, à 21:08

O_20_100_O

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Maintenant que c'est fait, tu n'as certainement pas envie de changer.
Mais un base de données relationnelle et quelques requêtes pour alimenter les rapports seraient autrement plus souples et fiables. Bref, Base à la place de Calc.

Bonne chance dans ta recherche cool

Dernière modification par O_20_100_O (Le 11/04/2025, à 21:10)

Hors ligne

#7 Le 11/04/2025, à 21:56

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Certainement. Je n'en sais rien.

Moi connaître un peu les tableurs, pas base ni access.

Et les gens qui devront utiliser le document en savent légitimement moins que moi, et de toute façon n'ont pas à se soucier de savoir s'ils peuvent ou pas couper ou glisser des cellules,
c'est des gestes instinctifs dès lors qu'on a un tableau et une souris sous les yeux et dans les mains…

Cela dit peux-tu me pointer vers des exemples ou de la doc' concernant base histoire que je comprenne pourquoi ça pourrait résoudre mes problèmes d'usage ?
Parce que des tableurs j'en ai d'autres et je vois bien que j'atteins des limites ( les miennes comme celles des utilisateurs finaux et parfois même celles du logiciel lui-même… )

Car si je passe par un tableur, et celui-là en particulier, c'est parce qu'il est installable à peu près partout ( et compatible dans une certaine mesure avec d'autres tableurs. )

Et non dans l'absolu ça ne me dérange pas de changer ou re-re-re-faire, je suis justement en train de chercher.

…sachant qu'au final, ça n'est pas toujours moi qui « remplis » ces documents.

Dernière modification par Coeur Noir (Le 11/04/2025, à 22:02)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#8 Le 12/04/2025, à 08:20

O_20_100_O

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Pour commencer, deux articles de wikipedia sur le principe, même si ça n'illustre pas très bien les relations entre tables.
https://fr.wikipedia.org/wiki/Base_de_d … ationnelle
Sur les systèmes de gestion des bases de données relationnelles.
https://fr.wikipedia.org/wiki/Syst%C3%A … nn%C3%A9es
Mais si tu changes, autant aller vers l'outil le mieux adapté à tes besoins. Ça va de la bureautique personnelle aux serveurs. Je ne connais pas les solutions les plus récentes.

Vu de loin, et sans connaître les détails, on pourrait comprendre qu'un cinéma a plusieurs salles dans lesquelles il projette des films dans un intervalle de temps.
L'analyse de cette phrase conduirait a créer les tables films et salles. Ces deux tables seraient mises en relation par la notion de séance.
Une séance serait un table qui contiendrait les identifiants du film projeté et de la salle concernée, le tout enrichi par l'horaire de projection.
Ensuite, il suffirait de créer une requête pour alimenter un formulaire ou un rapport qui présenterait la programmation.

L'administrateur de la base peut créer des formulaires de saisie pour enrichir la base au fur et à mesure de l'arrivée de nouveaux films et de l'établissement du calendrier des séances. Si la base est bien conçue, elles contrôle la cohérence et l'intégrité des données.

Ajout:
Pour gérer l'exemple ci-dessus avec Calc , tu pourrais créer des tables de typologie avec les feuilles salles et films. Ensuite il te faudrait une feuille  avec une ligne par séance, et toutes les colonnes utiles relatives à la séance.
La saisie serait faite avec un formulaire utilisant des zones de liste basées sur les typologies Les restitutions seraient réalisées avec des tableaux croisés.

Dernière modification par O_20_100_O (Le 12/04/2025, à 14:26)

Hors ligne

#9 Le 12/04/2025, à 13:54

zatigem

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Hello,
Tu propose une sorte de "absolue-relatif" à mon avis. Il faut choisir, tu ne peux pas avoir les deux. La case que tu utilise, si elle est référencé, doit rester réferencé. C est pour cela que calc met à jour sa valeur partout où elle est utilisée si tu la déplace. Si tu choisi absolu, alors pas d'importance et la reference ne bougera plus grace au $.

As-tu remarqué que le $ peut se mettre que sur la ligne ou colonne? (exemple $A1...)

Dernière modification par zatigem (Le 12/04/2025, à 15:51)

Hors ligne

#10 Le 12/04/2025, à 17:16

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

@O_20_100_O
…bon ok j'étais un peu de mauvaise foi sans doute.
J'ai déjà les outils qui font ce que tu proposes.
Là le besoin, c'est un document 'préparatoire' et assez visuel, pas trop compliqué à prendre en main et à 'enseigner' aux personnes concernées.
D'où le tableur. Qui sert à suivre / anticiper la programmation des événements dans les logiciels dédiés.

On peut exclure de l'équation la grille des séances. Là ce qui importe c'est plutôt les titres et le nombre de semaines à l'affiche.

@zatigem non non je ne propose pas une sorte d'absolu relatif. C'est juste que pendant qu'on construit le tableur, on a besoin que certaines références soient relatives ( ça permet que les formules s'adaptent comme décrit au #2 ).
Maintenant que tout cela est en place dans le tableur, mon besoin c'est de basculer quasiment l'intégralité des formules en références absolues.

@ tous les deux
…il y a un lien vers le document au post #4 que vous n'avez pas du voir.


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#11 Le 12/04/2025, à 17:25

JBF

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Bonjour,

Je cite l'aide qui est ici : https://help.libreoffice.org/latest/fr/ … DbPAR=CALC

Aide LibreOffice a écrit :

LibreOffice est capable de convertir la référence actuelle (dans laquelle le curseur est placé dans la ligne de saisie) de relative en absolue et vice versa : il suffit d'appuyer sur F4. Admettons une adresse relative commençant par A1 : la première fois que vous appuyez sur ces deux touches, ligne et colonne deviennent absolues ($A$1) ; la seconde fois, seule la ligne devient absolue (A$1) ; la troisième fois, uniquement la colonne ($A1), et une quatrième action rend la référence relative dans les deux sens (A1)


LibreOffice : https://fr.libreoffice.org/ (téléchargement, documentation, FAQ, assistance, contribuer, ...)
Aide pour LibreOffice par la communauté francophone : Ask LibreOffice

Hors ligne

#12 Le 12/04/2025, à 17:49

zatigem

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Effectivement, qu'est-ce qui t'empeche de selectionner toute une colonne voir toute la feuille et faire F4?

Si cela ne marche pas, quelle version utilise-tu?

Dernière modification par zatigem (Le 12/04/2025, à 17:50)

Hors ligne

#13 Le 12/04/2025, à 18:52

O_20_100_O

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

bon ok j'étais un peu de mauvaise foi sans doute.

Pas difficile de s'en douter smile

J'ai déjà les outils qui font ce que tu proposes.

Alors tu ne devrais pas avoir ce problème tongue
Trump.jpg

Dernière modification par O_20_100_O (Le 12/04/2025, à 18:58)

Hors ligne

#14 Le 12/04/2025, à 19:15

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Alors tu ne devrais pas avoir ce problème…

Et à ton avis, pourquoi je parle de « document 'préparatoire' et assez visuel, pas trop compliqué à prendre en main et à 'enseigner' aux personnes concernées » ?
…peut-être parce que cette étape préparatoire manque aux solutions en place, et implique des logiciels dont toutes les personnes concernées ne peuvent disposer.

qu'est-ce qui t'empeche de selectionner toute une colonne voir toute la feuille et faire F4?

Ben à priori ça :

convertir la référence actuelle (dans laquelle le curseur est placé dans la ligne de saisie)

qui semble induire qu'il faut placer le curseur « dans » la cellule.

Ooh… mais… on dirait bien que j'avais mal compris ! Bien vu zatigem !

Dernière modification par Coeur Noir (Le 12/04/2025, à 20:57)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#15 Le 12/04/2025, à 19:39

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

…mais ça ne résout absolument pas « mon » problème :

je sais pertinemment qu'il y aura des glisser déposer ou des couper coller dans la plage « titre » de référence,

or dès qu'on bouge une de ces données, la formule est modifiéé quand bien même elle est en références absolues.

Conclusion : mon besoin c'est de « délier » donnée et position de la cellule dans la plage des titres soit « bloquer » la formule pour que sa cible ne change jamais ( telle position fixe de cellule, et non position de donnée. )

L'intuition du début…


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#16 Le 12/04/2025, à 21:36

diesel

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Si tu ne veux pas que d'autres mettent le brin dans ta page, il suffit de la protéger avec un mot de passe et laisser libre en écriture les cellules dans lesquelles ils doivent rentrer les données.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#17 Hier à 09:26

O_20_100_O

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Suite à tes réponses, j'ai regardé ton fichier.ods, mais je ne suis pas sûr de bien comprendre en quoi consiste cette étape de "préparation".
Un tableur est beaucoup plus qu'une machine à écrire qui sait compter, c'est dommage de l'utiliser de cette façon.

Il y a au moins trois façons d'organiser les données.
* En mode "machine à écrire qui sait compter", avec plusieurs tableaux sur la même feuille, des cellules fusionnées et de jolies couleurs. C'est ce que tu as fait.
* en mode "base à plat" avec une feuille qui contient un enregistrement élémentaire pour chaque séance "Date, Salle, Séance, Film". La saisie peut se faire avec un formulaire équipé de zones de liste basées sur le contenu d'une feuille dédiée.
Ensuite, une table dynamique assure le calcul du nombre de séances et les regroupements pour le rapport.
Cette façon de faire évite les difficultés que tu rencontres avec ta méthode, mais c'est moins intuitif.
* En mode "base de données relationnelle", c'est le plus sûr et le plus évolutif. Mais là on abandonne le tableur.

Hors ligne

#18 Hier à 09:37

Rafbor

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Bonjour,
d'accord avec @Vincent, les solutions les plus adaptées sont la "base à plat" sur tableur, ou la "base de données relationnelle".

La base de données, si on n'a pas de connaissances, c'est chaud. Il faut bien construire les tables et leur relations (ici, c'est assez simple), il faut écrire des requêtes SQL (heureusement il y a des assistants), créer des formulaires de saisie, créer des rapports pour l'édition.

La base à plat sur tableur, il faut impérativement passer par des formulaires de saisie pour verrouiller les modifications possibles et ne pas faire n'importe quoi, et pour l'édition d'un document de synthèse (programme des films de la semaine ou du mois), le tableau croisé ne sera peut être pas adapté, au moins pour le côté mise en page, car on perd toute personnalisation dès que les données sources sont modifiées, donc le tableau croisé devra servir à alimenter la partie qui servira à l'édition (ou il faudra la programmer).

Dans les 2 cas, les macros en basic ou python sont indispensables. Cela ne se fera pas en quelques clics.

Dernière modification par Rafbor (Hier à 14:24)


Xubuntu 24.04 - Mes projets sur Github

Hors ligne

#19 Hier à 22:11

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Oui, oui, oui…

…faut pas oublier « qui » va se servir du document. Ni que par définition, un tableau c'est quelque chose qui donne visuellement des informations.
@Vincent ( ? _20_100_ ) Je n'ai pas spécialement de souci esthétique, hormis qu'éventuellement ce soit par défaut imprimable en A4 ou A3 ( ce qui est bien le cas. )
Par contre j'ai le souci « pragmatique » : ça doit tenir dans un fichier, être utilisable par plusieurs personnes, pas forcément passionnées d'informatique ou d'analyse de données, et autant que possible « interopérable ».

Donc je t'assure que non, je ne me sers pas d'un tableur comme d'une machine à écrire, merci.

Ici, sur ce document, mon seul problème, c'est qu'il interdit à l'utilisateur final de faire du glisser-déposer ou du couper-coller dans une plage.
prog-mensuelle.png
…à partir du moment où aura eu lieu du glisser-déposer ou du couper-coller dans cette plage, les résultats dans les colonnes Séa et Sem ne sont plus cohérents.

@Diesel Et cela bien que :
⋅ les formules sont en références absolues ;
⋅ les feuilles sont protégées, et ne laissent accès qu'aux zones nécessaires de saisie ;
⋅ protéger la structure de la feuille de calcul est actif ;
⋅ une feuille dédiée sert à regrouper les « data » pas forcément à plat mais disons d'une façon qui facilite le traitement des données.

Je n'aurais pas du tout ce problème si le fait de déplacer une cellule dans la plage en question ne transformait pas la formule ( qui manifestement est associée à la donnée dans la cellule cible et non à la position de la cellule cible. )

Je vais illustrer la chose, et mettre un lien vers le doc' actualisé dès que possible.

Dernière modification par Coeur Noir (Hier à 22:44)


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne

#20 Hier à 22:42

Coeur Noir

Re : LibreOffice Calc : rendre invariable une formule dans une cellule

Dernière mouture du doc' par ici.


DébuterDocBien rédigerRetour commandeInsérer image | illustrations & captures d'écran <>

Hors ligne