Entrer une valeur sans supprimer la formule

Bonjour,

Je cherche à entrer une valeur dans une cellule tout en gardant la formule active.

Exemple : Deux cellules affichent des prix, la cellule A1 est le hors-taxe, la cellule A2 est TVA 20% incluse.

1) J'entre en A1 la formule A2/1,2 (prix HT). La cellule A1 me calculera donc automatiquement le HT à partir de la valeur entrée en A2.

2) J'entre en A2 la formule A1/1,2 (prix TTC). La cellule A2 me calculera donc automatiquement le TTC à partir de la valeur entrée en A1.

3) Si je souhaite entrer un prix HT en A1, la formule va disparaître et laisser place à la valeur entrée manuellement.

Ainsi, si j'entre en A1 la valeur 50, A2 affichera 60. Mais si ensuite j'entre en A2 la valeur 120, A1 n'affichera pas 100 mais toujours 50 car la formule a été remplacée par la valeur 50.

Là est toute ma question : comment faire pour figer les formules malgré les entrées de valeurs manuelles ?

Merci d'avance pour vos conseils éclairés.

Bonjour et bienvenue,

1) J'entre en A1 la formule A2/1,2 (prix HT). La cellule A1 me calculera donc automatiquement le HT à partir de la valeur entrée en A2.

2) J'entre en A2 la formule A1/1,2 (prix TTC). La cellule A2 me calculera donc automatiquement le TTC à partir de la valeur entrée en A1.

je pense qu'il y a une erreur dans l'énoncé en 2) il faudrait mettre A1*1,2

pour cela, il faut faire une gestion d'événement qui va déclenché le calcul de A2 quand A1 est rentré et vice-versa

je vais te faire une maquette

Il faut alors activer / déclarer cette fonction comme trigger https://developers.google.com/apps-script/guides/triggers

function onEdit(event){

  var feuille = 'HT TTC';
  var f = event.source.getActiveSheet();
  var r = event.source.getActiveRange();
  if (f.getName() == feuille){
    if (columnToLetter(r.getColumn()) == 'A'){ 
      f.getRange('B' + r.getRow()).setValue(r.getValue() * 12 / 10); 
    }
    if (columnToLetter(r.getColumn()) == 'B'){ 
      f.getRange('A' + r.getRow()).setValue(r.getValue() * 10 / 12); 
    }
  }

}

j'ai intitulée la feuille "HT TTC" pour mes essais

je pense qu'il y a une erreur dans l'énoncé en 2) il faudrait mettre A1*1,2

Oui au temps pour moi tu as raison.

J'ai pas compris par contre l'histoire des triggers, c'est un truc à télécharger?

Un trigger est plutôt un gestionnaire d'événement ou déclencheur ... bref je n'ai jamais trouvé de traduction française simple et explicative car in fine toute l'aide est généralement en anglais.

Il faut en fait cliquer sur l'horloge de l'éditeur de script et définir les conditions.

Si tu n'est pas habitué à déclarer un "trigger", il est possible de le faire via une macro que tu peux ensuite effacer une fois la déclaration faite.

Je vais faire un tuto ...

Changeons le nom de la fonction avec une simplification à la clé.

enregistre une nouvelle macro (outils > macros)

capture d ecran 260

puis fait modifier

capture d ecran 261

et dans l'éditeur de script, remplace ce qui est proposé par :

function calculTVA() {
  var feuille = 'HT TTC';
  var f = SpreadsheetApp.getActiveSheet();
  var r = SpreadsheetApp.getActiveRange();
  if (f.getName() == feuille){
    if ((r.getColumn()) == 1){ 
      f.getRange('B' + r.getRow()).setValue(r.getValue() * 12 / 10); 
    }
    if ((r.getColumn()) == 2){ 
      f.getRange('A' + r.getRow()).setValue(r.getValue() * 10 / 12); 
    }
  }
};

modifie le terme 'HT TTC' pour désigner ta propre feuille

.

Maintenant on va ajouter un déclencheur :

Clique sur l'horloge, puis en bas à droite ajouter un déclencheur et tu renseignes les paramètres

capture d ecran 263

puis tu réponds aux demandes de sécurité

capture d ecran 265

et a priori c'est ok !

Un grand merci à toi pour ce tuto détaillé !

Malheureusement ça n'a pas marché Quand je clique sur enregistrer depuis la page "Ajouter un déclencheur pour macros enregistrées" Il ne m'affiche non pas "this will allow..." mais demande quel compte Google utiliser (il n'y en a qu'un) je clique dessus et il m'affiche la page suivante ...

capture

C'est le mode de fonctionnement de google, c'est un peu trop précautionneux sans doute !

Il faut déclarer et donc appuyer en bas à gauche sur Advanced

Ok ça a marché j'ai pu autoriser l'application

Maintenant comment je fais pour utiliser la macro et définir quelles cellules seront concernées?

Maintenant, tu attends ... le déclencheur (trigger) va lancer tout seul la macro dans le créneau horaire que tu as indiqué ... attends demain.

Tu pourras aussi consulter dans l'éditeur de script en appuyant sur l'horloge s'il s'est bien exécuté ou non.

N'oublie pas de clore le fil de discussion si tout est ok en cliquant sur

Rechercher des sujets similaires à "entrer valeur supprimer formule"