Figer résultat formule + Case à cocher Le sujet est résolu

Avatar de l’utilisateur
ThomasLP

Membre tout neuf
Messages : 3
Inscription : 03 mars 2023 16:39
A remercié : 1 fois
Remercié : 1 fois

Figer résultat formule + Case à cocher

Message par ThomasLP »

Bonjour à tous.

Je suis à la recherche d'une solution me permettant de "figer" le résultat d'une cellule à l'aide d'une case à cocher ou bien un autre système "simple"

Voici un exemple

- A1="JEAN"
- A2=A1
- Case à cocher dans la cellule A3

En temps normal, si j'écris "PAUL" en A1, A2 se met automatiquement à jour

Ce que je cherche:
Si je coche la case qui est en A3, la valeur en A2 se fige (par défaut "JEAN")
Une fois la case cochée en A3, je peux modifier A1 et cela n'a pas d'influence sur A2

En gros la case cochée déclencherait un copier/coller de la valeur.
Pour info, il y aurait une centaine de case à cocher dans la feuille de calcul.

Je vous remercie par avance
 
Avatar de l’utilisateur
ChristopherH

Coach Numericoach
Invétéré
Messages : 31
Inscription : 13 janv. 2023 14:35
Remercié : 3 fois

Re: Figer résultat formule + Case à cocher

Message par ChristopherH »

Hello Thomas,

Finalement si j'ai bien compris, il y a deux cas : 

Si la case est cochée, A2=A1
Si la case n'est pas cochée, A2="Jean" (par défaut)


Une case à cocher étant un booléen (cochée = vrai, pas cochée = faux), j'aurai tendance à penser à faire une fonction SI(), ce qui donnerait dans ton cas en A2 :

=SI(A3=VRAI;"Jean";A1)

Donc si A3 est cochée, A2 prendra la valeur "Jean". Sinon, elle prendra la valeur de la cellule A1.

J'imagine par contre que "Jean" n'était qu'un exemple et que cette valeur change selon les cas. Si j'ai raison, comment est définie cette valeur "Jean" ?

On pourra affiner la formule avec cette information (ou la changer si ça marche pas).

Bonne soirée,

Christopher
Avatar de l’utilisateur
NC-Ahmet

Coach Numericoach
Invétéré
Messages : 87
Inscription : 19 sept. 2022 14:09
A remercié : 16 fois
Remercié : 19 fois

Re: Figer résultat formule + Case à cocher

Message par NC-Ahmet »

Hello ThomasLP,

Je me permets d'ajouter un élément de réponse qui correspondra certainement davantage à tes attentes.

Au passage, merci à Christopher pour sa réponse, le seul problème dans sa solution c'est que la fonction SI ne va pas se modifier à chaque fois que la colonne A l'est, ce qui fait qu'il affichera forcément "Jean" lorsque la case est décochée... plutôt embêtant.

À ma connaissance, il n'y a pas de solution native dans Google Sheets en l'état (peut-être que si ?).

Cependant, je te suggère la solution suivante :
  1. Rends toi dans le menu Extensions > Apps Script
  2. Fais un copier/coller du script suivant :

Code : Tout sélectionner

function onEdit(e) {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const colonnePrecedente = feuille.getRange(e.range.getRow(), e.range.getColumn() - 1);
  const valeurCopie = feuille.getRange(e.range.getRow(), e.range.getColumn() - 2).getValue()
  const copierValeur = () => colonnePrecedente.setValue(valeurCopie)
  const copierReference = () => feuille.getRange(e.range.getRow(), e.range.getColumn() - 1).setFormulaR1C1(`=RC[-1]`)

  e.range.getColumn() === 3 ?
  e.range.getValue() === true ?
  copierValeur() : copierReference() : ``;
}
Voilà ! Juste une dernière étape avant que ce soit fonctionnel, tu devras cliquer sur "Exécuter" et autoriser les accès pour que ton script puisse interagir avec ta feuille Google Sheets.

Tu vas obtenir une erreur, c'est normal. Cette fonction n'est pas conçue pour fonctionner ici mais depuis ton classeur Google Sheets directement.

Retourne dans ta feuille et teste voir !

Attention. Je précise que le code n'est pas optimisé : il fonctionne dans n'importe quelle feuille de ton classeur à condition que tu aies une structure bien définie.
  • Les valeurs en colonne A ;
  • La colonne B qui fait référence à la colonne A ;
  • Des cases à cocher en colonne C.
Voici une démonstration en image : Image
A++ !
Avatar de l’utilisateur
ThomasLP

Membre tout neuf
Messages : 3
Inscription : 03 mars 2023 16:39
A remercié : 1 fois
Remercié : 1 fois

Re: Figer résultat formule + Case à cocher

Message par ThomasLP »

Bonjour Ahmet

Merci pour ton retour.
C'est exactement cela que je cherchais, merci !!

Par contre mon problème est que les cellules ne sont pas les unes à cotés des autres.

Voici la disposition des cellules 

Dans mon cas, la cellule D239 va alimenter les cellules I239, P239 etc ...   (I239=D239 P239=D239 ...)
Je voudrais figer les valeurs I239 et P239 en cochant la case car la valeur D239 peut évoluer avec le temps car elle est alimenter avec une autre valeur

Si vous avez une idée je suis preneur ;) Image
Avatar de l’utilisateur
NC-Ahmet

Coach Numericoach
Invétéré
Messages : 87
Inscription : 19 sept. 2022 14:09
A remercié : 16 fois
Remercié : 19 fois

Re: Figer résultat formule + Case à cocher

Message par NC-Ahmet »

Hello,

En effet je n'avais pas toutes les infos.

Voici le code à jour :

Code : Tout sélectionner

function onEdit(e) {
  const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const ligne = e.range.getRow();
  const colonnePrecedente = feuille.getRange(ligne, e.range.getColumn() - 1);
  const valeurCopie = feuille.getRange(ligne, 4).getValue();
  const copierValeur = () => colonnePrecedente.setValue(valeurCopie);
  const copierReference = () => colonnePrecedente.setFormula(`=D${ligne}`);

  e.range.isChecked() !== null ?
  e.range.getValue() === true ?
  copierValeur() : copierReference() : ``;
}
Je t'explique le fonctionnement. Déjà, de ce que j'ai compris, tous les noms à récupérer sont dans ta colonne D, c'est bien ça ?

Le code ci-dessus va s'exécuter si tu coches ou décoches une case, quelle que soit sa position.

Si tu coches une case, elle va chercher la valeur de la même ligne en colonne D, pour la copier et la coller dans la cellule se trouvant juste à gauche de cette case à cocher.
Si tu décoches une case, elle va insérer la formule =D239 si t'es en ligne 239, =D240 si t'es en ligne 240, etc. dans la cellule se trouvant juste à gauche de cette même case.

J'espère que mes explications sont claires et que le code correspond à tes attentes !

A+
Avatar de l’utilisateur
ThomasLP

Membre tout neuf
Messages : 3
Inscription : 03 mars 2023 16:39
A remercié : 1 fois
Remercié : 1 fois

Re: Figer résultat formule + Case à cocher

Message par ThomasLP »

Oh super ! C'est exactement ce qu'il me fallait.
Je te remercie beaucoup !!!!
Thierry

Coach Numericoach
Invétéré
Messages : 112
Inscription : 11 sept. 2022 20:27
A remercié : 1 fois
Remercié : 21 fois

Re: Figer résultat formule + Case à cocher

Message par Thierry »

Bravo et merci Ahmet !
Répondre

Rejoignez la discussion 💬

Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres

Inscrivez-vous dès aujourd'hui

Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles

Inscription

Connectez-vous